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

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

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

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

Колега с първия пример на първа задача печата и 10, което не е коректно :)

0
hristolilov avatar hristolilov 394 Точки

Като цяло съм омазал доста задачи, ще ги коригирам утре.Само 02 и 08 работят коректно.На 3 и 6 не съм сложил проверка за еднакви карти.

0
AntyfrizZz avatar AntyfrizZz 238 Точки
В условието на задача 1 не е казано, че числата са най - много трицифрени. Виждам,че си го приел. Та ако може да го обсъдим, за да знам как да процедирам :)
0
n_stefanov avatar n_stefanov 34 Точки

За задача 9:

Успях да оправя проблема с печатането във файла:

- Вместо "BufferedWriter writer;" на 13 ред го смених с "Writer writer = null;"

- getPrice() и getName са в обратния ред по условие :)

- за да се отрази новия ред (защото не го хващаше във файла) "\n" го смених с "\r\n";

 

Иначе евала за решението, аз го мъчих 3 часа докато схавана как работят тези Comparable към Collections... :)

1
Samuil.Petrow avatar Samuil.Petrow 1550 Точки

Мерси, колега :)

Иначе грешката всъщност идваше от това, че writer-ът не се затваря, което ми е много странно... Та затворих го с .close() и вече всичко е ок.

1
AntyfrizZz avatar AntyfrizZz 238 Точки

Сложи си един брояч на 3та задача и ще видиш, че изкарваш доста повече резултати от необходимото. В примера се генерира фул от 3 2ки спатии и 2 5 кари (пример) Но в тестето нямаме 3 2ки спатии... Съвсем малка преработка ти трябва на кода, за да получиш точният резултат фул-ове - 3744. Ако се затрудниш, в което се съмнявам, пиши за да ти кажа къде бъркаш :) Поздрави!

1
BoniMislyashki avatar BoniMislyashki 36 Точки

На първа задача е добре да замениш secondNum = currentNum.substring(currentNum.length()/2+currentNum.length()%2, currentNum.length()); с secondNum = new StringBuilder(currentNum.substring(currentNum.length()/2+currentNum.length()%2, currentNum.length())).reverse().toString(); Стринга трябва да го обърнеш, иначе ще получаваш числа като 4848, 4949 ..., които не са симетрични.

 

1
MartinBorisov94 avatar MartinBorisov94 52 Точки

Относно 7 ма задача. Започнах да я пиша по същата логика както теб, но на реда Date date2 = simpleDateFormat.parse(input2);  ми дава грешка. Подчертава ми го целия. Първоначално мислех, че греша и прекопирах твоето решение за тест и резултата отново е подчертаване. Ще можеш ли да ме напътиш каде може да се крие проблема.

0
n_stefanov avatar n_stefanov 34 Точки

MartinBorisov94, най-вероятно като копираш моя код не сработва заради различните имена на проекта и/или package-а който в моя случай е "javaLoopsMethodsClasses". В повечето случай като отидеш с мишката над подчертавката, ти дава опции как да го оправиш. 

Иначе защо " Date date2 = simpleDateFormat.parse(input2);" ти дава грешка немога да знам без да погледна кода ти:)

Както и да е, аз това го правих деня преди лекцията, а на самата лекция Наков препоръча да не използваме "util.Date", а някой друг или просто да си парснеме входа като стринг и да  го разцепиме ръчно и сметнеме.

0
kasskata avatar kasskata 492 Точки

И сега  малко смут!.Решение на 2ра в 5 реда. Излишно се пренасилвате колеги laughing innocent

Scanner inputScn = new Scanner(System.in);
String charArr = inputScn.nextLine();
    for (char first = charArr.charAt(0); first <= (int) charArr.charAt(charArr.length()-1); first++) {
        for (char second = charArr.charAt(0); second <= (int) charArr.charAt(charArr.length()-1); second++) {
            for (char third = charArr.charAt(0); third <= (int) charArr.charAt(charArr.length()-1); third++) {
                System.out.println(first + " " + second + " " + third);
            }
        }
    }

Първия код отпечатва всички чарове, които са от А до Х (може да ви потрябва някой ден).Обаче не е по условието.Поиграх си още 3 минути...

char[] chars= new char[3];

chars[0] = charArr.charAt(0); 

chars[1] = charArr.charAt(1);

chars[2] = charArr.charAt(2);

 //може да има и по интелегентен начин на чармасив, но в С# :)

for (char first : chars){
    for (char second : chars){
        for (char thirth : chars){
            System.out.println(i + " " + j + " " + k);
        }
    }
}    

 

мисля че няма нужда да ви казвам,че отгоре има майн и клас.

 

4
pdechkova avatar pdechkova 95 Точки

Това е моята 2ра, също в 5 реда - ТУК

3
pdechkova avatar pdechkova 95 Точки
  1. Symmetric Numbers In Range
  2. Generate 3 Letter Words
  3. Generate Full House - Колеги, някой да е получил като брой на full houses, както е в примера -3744 full houses. Видях решенията по-горе и никое не дава този резултат. Може би не разбирам и условието. Според мен едната от бойте на 2рата двойка карти трябва да съответства на боята на първата тройка карти. Така ли е? Ако е така, аз получавам резултат 2497 full houses. А ако не е така получавам мн голям брой - 9985 full houses. Моля, ако някой е получил правилния отговор, да каже. Че почти цял загубих да се мъча да ги докарам толкова laughing
  4. TODO
  5. TODO
  6. Random Hands
  7. Days Between Two Dates

 

0
ivailozd avatar ivailozd 75 Точки

Здравей,

Аз получих правилен резултат. Можеш да видиш как ТУК. Иначе нямат значение боите, стига да няма две осмици пика, примерно.

Поздрави!

2
pdechkova avatar pdechkova 95 Точки

Благодаря ти, нз защо съм си решила, че трябва да са от една боя първите хихи 

0
Tr00peR avatar Tr00peR 566 Точки

Заповядайте едно решение на 11та задача от мен :)

11-ExtractDataFromXLSX.

Подробен гайд в блога ми.

Накратко - използвам Apache POI библиотеката, чета файла ред по ред и взимам първа и шеста клетка. Резултата пазя в TreeMap, което е като SortedDictionary в C# и накрая принтирам с foreach.

 

ЕДИТ - прилагам решения на 9 и 10 задача:

Product Class

09 - List Of Products

10 - Order Of Products

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

 

6
borislavml avatar borislavml 368 Точки

Колега, много "красиви" решения на 9 и 10 задача. Това със Scanner-a  и .hasNextLine наистина е голяма благинка smile Веднага ще открадна кодsmile

0
nikolay.dimov83 avatar nikolay.dimov83 143 Точки

На 5-та задача нещо зациклих:

Значи, правя си един метод, който по предварително зададен тип на информацията (rad или deg) и числена стойност да преобръща съответно в deg или rad. В метода имам един if -else statement, който в зависимост от прочетения тип трябва да сметне rad->deg или deg->rad:

 

public static String radToDegreesAndOpp(double rads_degs, String type)
{
String returnValue;

if (type=="rad")
{
double degrees=Math.toDegrees(rads_degs);

returnValue=degrees+" "+"deg";
}
else
{
double radians=Math.toRadians(rads_degs);

returnValue=dradians+" "+"rad";
}
return returnValue;

}

Проблема е, че въпреки че прочита, че type="rad" и виждам на дебъгера, че няма празни символи, които биха могли да дойдат от прочитането с next по никакъв начин програмата не иска да ми влезе в if клаузата, а преминава направо на else. Някакви идеи защо може да се получава така?

 

Ето и пълния код на задачата ми:

http://pastebin.com/J8ysrZwp

0
hristolilov avatar hristolilov 394 Точки

Когато сравняваш стрингове използвай .equals По някаква причина с == не работи...вчера и на мен ми създаде доста главоболия, докато го разбера.

1
nikolay.dimov83 avatar nikolay.dimov83 143 Точки

Да имам някакъв спомен, че Наков каза по повод BigInteger, че за типове , които не са built in не може да се предефинират операторите, вероятно това важи и за == на String - сигурно сравнява адресите в паметта на двата обекта или кой знае какво прави. Макар че пък "+" е предефиниран... Гадна JAVA!

 

Иначе мерси много за помощта!

0
bsdemon avatar bsdemon 348 Точки

Колеги, да попитам, защо това не ми разбърква масива :


char[] number = { '2', '3', '4', '5', '6', '7', '8', '9', 'J', 'Q','K', 'A' };

Collections.shuffle(Arrays.asList(number));

Гледах го през дебъгера, масива си остава същия, а би трябвало да се разбърка.

0

Пробвай със следното:

Character[] number = { '2', '3', '4', '5', '6', '7', '8', '9', 'J', 'Q','K', 'A' };
Collections.shuffle(Arrays.asList(number));

Обяснение (виж best answer)

Накратко: при подаване на масив от примитивен тип, този метод създава нов масив и не ти върши никаква работа. За да стане това, което искаш, трябва да му подадеш масив от референтен тип.

1
bsdemon avatar bsdemon 348 Точки

Работи, благодаря :) Който не гледал какво пише, пищел сорса по няколко пъти :)

 

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