Loading...

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

Pete1 avatar Pete1 56 Точки

Java-Syntax Homework

Колеги, реших да отворя тема и да споделя решенията си на задачите от домашната по "Java Syntax", ако някой има различни идеи за решаване на конкретните задачи, предложения за коригиране на някои от моите или каквото и да е относно задачите, нека сподели. :)

Problem 1. RectangleArea

Problem 2. TriangleArea

Problem 3. FormattingNumbers

Problem 4. CalculateExpression   

Problem 5. ConvertDecimalSystemToBase-7

Problem 6. ConvertFromBase-7ToDecimal  

Problem 7. RandomizeNumbersFromNToM

Problem 8. *OddAndEvenPairs  

Problem 9. *HitTheTarget  

Problem 10. CharacterMultiplier

Problem 11. GetFirstOddOrEvenElements

 

 

Тагове:
10
Java Advanced 20/03/2016 16:02:56
bety_1988 avatar bety_1988 49 Точки

Колега, добре че си пуснал домашното :) Тъкмо приключих с 10 задача и като погледнах твоята видях, че трябвало с метод да се напише. Ето го моя вариант на задачата - дано да е и разбираем :) Кодът - http://pastebin.com/ZG5UwVL8

1
S.Asenov avatar S.Asenov 35 Точки

Колежке, така написан метода ти ще гърми, ако втория стринг е по-къс от първия. Не съм го пробвал, но така ми се струва :)

1
bety_1988 avatar bety_1988 49 Точки

Прав си колега, така е. Не бях тествала този вариант. Ето го новия код и сега работи :) http://pastebin.com/tqRDuqcr

Благодаря ти!

1
18/03/2016 08:06:44
supersane avatar supersane 234 Точки

Това са и моите задачи, плюс някои други, които съм решил от домашни давани на по-стара инстанция на курса.

3
Pete1 avatar Pete1 56 Точки

Би ли дал условието на "Magic Words" 

0
supersane avatar supersane 234 Точки

Разгледах всички предишни инстанции и не можах да открия, същия файл с домашни задачи, които съм решавал, понеже тези решения, които пуснах аз ги правих през октомври, когато карах отворения курс по Java. Условието беше нещо от сорта на получаваш 2 стринга:

Примери 1: string 1 - "aabbcc" string 2 - "ggffzz" => true, защото всяка буква съответства от стринг 1 на стринг 2, ако не ти е ясно сега ще ти стане от следващия примери.
Пример 2: string 1 - "aabbaa" string 2 - "ggffzz" => false, защото a -> g; b -> f и тогава последните 2 букви във пърия стринг са отново "аа", но във втория на техните индекси нямаме "gg", ами "zz", и това дава false. 

Дано са ми били ясни примерите ако си имал желание да я решиш, защото задачата е интересна и в малко по-трудна от останалите, но ако не си ползвал HashMap до сега, тази задача ти дава повод да го използваш, и да видиш колко е удобно. 

1
aleksshao avatar aleksshao 19 Точки

Много добро решение на 7-ма задача :) Ето ти още по кратък вариант - 

import java.util.Scanner;

public class RandomizeNumbersFromNToM {
    public static void main(String[] args) {

        Scanner input = new Scanner(System.in);
        int n = input.nextInt();
        int m = input.nextInt();
        if (n > m) {
            for (int i = 0; i < (n - m) + 1; i++) {
                System.out.print(" " + (int) ((Math.random() * (m - n) + n)));
            }
        } else {
            for (int i = 0; i < (m - n) + 1; i++) {
                System.out.print(" " + (int) ((Math.random() * (m - n) + n)));
            }


        }
    }

}
3
PetyoPetrov avatar PetyoPetrov 19 Точки

Браво! Все пак в 7 задача, в регексът + е излишен, защото винаги ще има само една запетая като разделител между два елемента в листа. За скобите същото отново е вярно. Иначе по интересен начин си си усложнил решението, един foreach би свършил работата, с оглед простота на решението.

Поздрави!

Петьо

1
S.Asenov avatar S.Asenov 35 Точки

Здравей,

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

За плюса си прав. Сега го видях :) Оставил съм и една излишна променлива във фор цикъла, спомен от експериментите ми :)

0
19/03/2016 03:28:28
IskrenPenev avatar IskrenPenev 177 Точки

Ето го и моето домашно: 

Problem1  RectangleArea: http://pastebin.com/fskxEr5P

Problem2 TriangleArea: http://pastebin.com/N4y4uaat

Problem3 FormattingNumbers: http://pastebin.com/wCGbFF2k

Problem4 CalculateExpression: http://pastebin.com/6HFeYqN8

Problem5 DecimalToBase7: http://pastebin.com/6GFedD4d

Problem6 Base7ToDecimal: http://pastebin.com/4x18k0An

Problem7 RandommizeNumbers:  http://pastebin.com/T4TEwN8M

Problem8* OddOrEvenPairs: http://pastebin.com/c6LJ1Z5U

Problem9* HitTheTarget: http://pastebin.com/apHCaAw0

Problem10 CharacterMultiplier: http://pastebin.com/RKdhawxG

Problem11 GetFirstOddOrEvenNumbers: http://pastebin.com/6SB5Zb5K

1
EvgeniyaL avatar EvgeniyaL 35 Точки

Аз за Problem 7. RandomizeNumbersFromNToM ползвам HashSet<T>, в който записвам числата и после ги принтирам. Той сам си ги разбърква, защото не ти гарантира, че ще ти ги върне в същия ред, в който си ги записал. 

1
PetyoPetrov avatar PetyoPetrov 19 Точки

Стойността, която подаваш на HashSet-a минава през една hash функция,генерира се hash код, който е еднакъв винаги-тоест се губи случайният принцип. Иначе е супер,че си се сетила за HashSet, но в случая всеки път като принтираш на конзолата е една и съща последоватеност за едни и същи входни данни. 

P.S. - Поздравления за креативността !

Поздрави,

Петьо!

1
EvgeniyaL avatar EvgeniyaL 35 Точки

Здравей,

Ами аз разгледах първо класа Random, как се ползва, но той генерира произволни числа, като може да има повторения. За HashSet знам от курса Стуктури от данни, караха ни да имплементираме такъв. В последствие видях обаче, че има статичен метод shuffle() на каласа Collections, и според мен трябва да се ползва той. 

Поздрави!

1
PetyoPetrov avatar PetyoPetrov 19 Точки

Здрасти! Random ще те предаде в случая само ако на конзолата поискаш 2 последователни пъти произволните числа. И според мен shuffle() е по уместен от HashSet.

Поздрави !

0
Happiness95 avatar Happiness95 5 Точки

След многобройни битки с този гитхъб мисля че успях да кача и аз моето домашно.Ако някой е запознат може ли да ми каже дали в един репозитори мога да качвам повече от един проект(да кача примерно 2 домашни ).
Последните 2 не съм сигурен дали съм координирал методите правилно.

https://github.com/IvayloYanakiev/Java-Syntax-Homework

0
baxlash avatar baxlash 31 Точки

Аз лично съм си направил една папка наречена Java Foundamentals и в нея за всяко домашно имам подпапка. Когато приключа с даденото домашно си синхронизирам главната папка със GitHub и всичко се качва. Изполвам за целта TortoiseGit.

Aко имаш някакви проблеми с GitHub-а пиши ми на скайп, за да ти обясня по-подробно.

0
Happiness95 avatar Happiness95 5 Точки

TortoiseGit по-лесно използваемо ли е от Git Ui?

0
Alex0101 avatar Alex0101 374 Точки

Аз ползвам TortoiseGit и понеже съм м свикнал ми е доста по - лесно от Git Ui. Също така, най- чистия вариант е console based, но аз лично не съм си играл достатъчно , за до го ползвам успешно.

0
KrumKrumov avatar KrumKrumov 6 Точки

Ето го и моето домашно, без последната задача, на която така и не успях да разбера условието: https://github.com/Wnbj/JavaSoftUni

На по-късен етап ще ги подредя в папки с подходящи имена, но към момента тоя github ме кара да се чувствам като идиот.

1
Stefan94 avatar Stefan94 21 Точки

Здравей !Исках да видя няколко различни  решения на 8-ма задача.Погледнах твоето и забелязах ,че е почти като моето.
Виждам ,че си използвам 4 for цикъла .Мисля че само с 2 е напълно достатъчно.

for (int i = 1; i <= 20; i++) {
    for (int j = 1; j <= 20; j++) {
        if (i + j == number) {
            System.out.println(i + "+" + j + "=" + number);
        }
        if (i - j == number) {
            System.out.println(i + "-" + j + "=" + number);
        }

 
2
Pete1 avatar Pete1 56 Точки

Здравей, колега,прав си относно задачата, въобще не бях обърнал внимание и май имаш предвид 9-та задача  :P, благодаря за tip-а.

 

1
Stefan94 avatar Stefan94 21 Точки

Точно така ,9-та задача ,извинявам се за грешката.Радвам се,че съм бил полезен :)

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