Loading...
KonstantinKirchev avatar KonstantinKirchev -1 Точки

[Exam] Java Basics - 08 February 2015 - впечатления, решения

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

Отварям тази тема, за да може всеки който желае да сподели преживяването от изпита :)

Трудни ли Ви бяха задачите?

Какво ще кажете за 3та "любимата ми"?

Аз да Ви кажа съм доволен от себе си. Реших 3 задачи (1ва,2ра и 4та).

Научих нови неща от главоблъскането по 3та задача :) както се случва на всеки изпит.

Обичат да ни предизвикват с интересни задачи :)

Запомнете едно: Най-важното са знанията които трупаме с всеки изминал ден.

Дори най-много се научава от нашите неуспехи. Ще повторим материала и ще го затвърдим. 

Не е ли така?

Успех на всички и горе главата :) 

Keep calm and keep coding :)

 

Тагове:
1
Java Advanced 08/03/2015 14:14:36
nick.genov avatar nick.genov 104 Точки

Задачите ми се сториха една идея по-интересни спрямо миналите изпити. Трудността беше на очакваното ниво. Единствените нови неща спрямо C# Basics изпита бяха регулярните изрази и речниците (TreeMap, HashMap и др.).

Задача 1. Нямаше изненади, подобни имаше в доста от миналите изпити.

Задача 2. Стори ми се най-трудната :) Първоначално тръгнах да ползвам BigDecimal, но в последствие се отказах, защото видях, че и double ще ми свърши същата работа. Решението ми отне най-много време - около час, основно заради заигравките с BigDecimal. Ползването на методи много ми помогна.

Задача 3. Такава задача досега не бях срещал на нито един от вариантите за C# или Java, което е чудесно :) Стори ми се доста интересна. Това е решението ми: https://github.com/nickgenov/JavaBasics/blob/master/8-Exams-Java-Basics/src/_03_LegoBlocks.java

В GitHub съм качил решенията и на другите задачи от изпита, ако на някой му е интересно.

Задача 4. Същата като всяка четвърта задача от миналите Java изпити. Лично аз съм изненадан, че не са я решили повече хора.

 

2
09/02/2015 20:48:44
velevatanas avatar velevatanas 85 Точки

Здрасти, 

може ли да сложиш и линк към твоето решение на 2-ра, понеже в Гитхъб нещо не мога да ти ги намеря. Това е моето, което дава 70 точки и не мога да разбера, къде и за какво ми дава ексепшън:

Втора задача - http://pastebin.com/g6taGDpc .  

А това е моето на 3-та, дава 100-те, но е доста грозно, защото доста бързах за тая задача и доста неща са безсмислено усложнени, ама не исках да пипам кода, а да хвана точките:

Трета задача -  http://pastebin.com/bpQP8QbM 

 

 

0
softuniobserver avatar softuniobserver 73 Точки

Това е решена от мен втора задача (като включва и време извън изпита...):

click

0
29/03/2015 00:39:05
softuniobserver avatar softuniobserver 73 Точки

String[] input = see.nextLine().trim().split("\\s+");

вместо

String[] input = see.nextLine().trim().split(" +");

решава твоя проблем с Runtime error - ите на тестовете, които не ти минават

 

1
09/02/2015 19:04:58
Slamster7 avatar Slamster7 47 Точки

Аз успях да реша само 1 задача, отново се убедих, че става с повечко практика. :) Като прегледах задачите, трудността наистина беше нормална и всеки, който се е занимавал достатъчно време не би трябвало да има проблем с тях.

 

Аз имам един въпрос - знае ли се кога е поправката и кога ще се разбере ? :)

 

1
KonstantinKirchev avatar KonstantinKirchev -1 Точки

До колкото знам поправката ще е след края на ниво 1. Не съм на 100% сигурен.

0
dtroyanov avatar dtroyanov 25 Точки

Аз успях да реша първите 3 задачи, като най-много време ми отне третата, защото бях тръгнал по грешна логика и ми даваше само 25 точки. Четвъртата не ми се стори много трудна, но нямах достатъчно време да ги науча тея Мапове и понеже и времето ме притискаше изобщо не я отразих. Като цяло за това, че нямах почти никакво време да се подготвя съм доволен! Успех на всички занапред!

0
enevlogiev avatar enevlogiev 1168 Точки

Трета задача я циклих преди малко и видях, че може да се реши супер просто - http://pastebin.com/P5572E0B
Решението ми на изпита има още 15 реда ненужен код : )

2
TrifonApov avatar TrifonApov SoftUni Team Trainer 131 Точки

Като ти гледам кода и си се ядосвам още повече!!! Ма много съм тъп!!! Особено за това дет ми го каза оня ден за обратният цикъл.

1
ksevery avatar ksevery 35 Точки

Изпитът си беше интересен. Лично аз нямах толкова време да разцъкам самата Java, заради което загубих доста време, но в крайна сметка реших и четирите задачи. Сега за самите тях:

1-ва: Нищо особено, прави се бързо.

2-ра: По-интересна беше, реших я донякъде и към края на изпита я дореших до 100 точки(ей тия trim()-ове :D )

3-та: Добра задачка, на интересно решение се получи, доста време се чудих защо ми гърми и не ми докарва max точки, в резултат се оказа, че ползвам грешни типове данни - int вместо String.

4-та: Също интересна, загубих малко време с някакви по-странни решения, като накрая използвах TreeMap<String, LinkedHashMap<String, Integer>> за данните, които ми трябваха :D

Доволен съм от изпита, даде ми някои предизвикателства като в крайна сметка всичко си заработи. И сега - една популярна фраза: "Продължаваме напред" :D

0
velevatanas avatar velevatanas 85 Точки

Някой може ли да ми открие грешката на втора задачка. Дава ми само 70 точки и дава някакви ексепшъни...

import java.util.Scanner;


     public class Problem_2 {

          public static void main(String[] args) {
               Scanner see = new Scanner(System.in);
               String[] input = see.nextLine().split(" +");
               double total = 0;
               for (int i = 0; i < input.length; i++) {
                    double a = Double.parseDouble(input[i].substring(1, input[i].length()-1));
                    if(input[i].charAt(0) >= 65 && input[i].charAt(0) <= 90){
                         a/= (int) input[i].charAt(0)-64;
                    }
                    else if(input[i].charAt(0) >= 97 && input[i].charAt(0) <= 122){
                         а*= (int) input[i].charAt(0)-96;
                    }
                    if(input[i].charAt(input[i].length()-1) >= 65 &&
                    input[i].charAt(input[i].length()-1) <= 90){
                         a-= (int) input[i].charAt(input[i].length()-1)-64;
                    }
                    else if(input[i].charAt(input[i].length()-1) >= 97 &&
                    input[i].charAt(input[i].length()-1) <= 122){
                         a+= (int) input[i].charAt(input[i].length()-1)-96;
                    }
                    total+= a;
               }
               System.out.printf("%.2f", total);
     }

}

-1
velevatanas avatar velevatanas 85 Точки

Пробвах и с BigDecimal, trim(), "if" за евентуални празни стрингове... пак си дава само 70

0
Filkolev avatar Filkolev 4482 Точки

split(" +") - това не е правилно. Регексът трябва да е split("\\s+"). Тримването маха празни места в краищата на стринга, но при сплитването остават такива като елементи в масива.

1
enevlogiev avatar enevlogiev 1168 Точки

Тоя сплит е много криминален, ама не е проблем : ) Сигурен ли си, че тая поредица

if

else if,

if 

else if

работи коректно ?

Еdited: Ще ти направят забележка за толкова много редове код, по-добре сам си го редактирай и дай линк от pastebin/codepaste/etc

0
09/02/2015 19:18:00
Nukem avatar Nukem 6 Точки

Както колегата по-горе, 70% и рънтиме ерори в началото и края а отговорите верни:

http://pastebin.com/WuTSHnws

не мога да повеярвам още че заради s+ и 30точки надолу :(

да кажа че съм потресен от това защо ми дава 60% на първа задача, оказа се че имам грешка на последния ред не >=15 а било >15, е не можеше ли да се напише в условието това а не да ми го каже някой тихо и аз след средата на залата бях седнал и явно не съм разбрал! И какво решена задача логика всичко и накрая 60%,  Друг коментар нямам. 

http://pastebin.com/Cufnv72z

-1
09/02/2015 19:58:52
ibakyrdjiev avatar ibakyrdjiev 172 Точки

Регулярния ти израз не е правилен, да не говорим че може и без regex...
можеше да провбаш [^a-z]+   ^ е отрицание на група. Да не говорим че по време на изпита се каза къде са границите. С този израз и твоя код задачата ти дава 100т.

И Е >=15;
Каза се неколкократно по време на изпита през микрофона и колоните. Да не говорим че можеш да питаш асистентите.


По другия проблем: 

"Exception in thread "main" java.lang.StringIndexOutOfBoundsExcep..." Означава че излизаш от String. Като го потърсиш в google ти го дава на 3ти ред  - > stackOverFlow

 

П.С. Слочаенос? Немисла 1!!111!!

1
09/02/2015 20:50:43
velevatanas avatar velevatanas 85 Точки

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

0
ibakyrdjiev avatar ibakyrdjiev 172 Точки

80точки дава без да слагаш  "=" където и да е. ..

0
09/02/2015 20:57:24
Bi0GaMe avatar Bi0GaMe Trainer 389 Точки

Здравейте на всички,

Радвам се да видя доста позитивни отзиви по задачите. Качил съм всички ресурси (Условия (поправени), тестове и авторски решения) в сайта на курса (може да ги намерите тук). Сега ще кача условията и в Judge-a. 

По въпроса с кога излизат оценките, до няколко дни ще има класиране и ще го пуснем.

Поздрави и приятна вечер,

Богомил.

6
09/02/2015 23:11:12
zh.stoqnov avatar zh.stoqnov 103 Точки

Прилагам едно по различно решение на задача 4 Userlogs. Отне ми доста време на изпита, но ми се струва че се получи добре. Up for you to decide.

UserLogs

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