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

[Homework] Java Basics - Introduction to Java - May 2014

Домашното вече е качено в системата - цъкили си го свалете оттук

Доста търсене в нета ми се наложи, предвид, че няма лекция още (освен презентацията).

3.PrintHometown

5.CurrentDateTime

6.SumTwoNumbers

7.Console-Based-Compilation (Под windows среда):

1. cd до директорията или през file explorer, shift + десен бутон + open new command prompt window here
2. set path=%path%;C:Program Files\Java\jdk1.8.0_05\bin
3. javac SumTwoNumbers.java
4. java SumTwoNumbers

8.SortArrayOfStrings

10. Доколкото разбирам се прави jar с jar -cf име файлове и след това се отваря с java -jar файл, но не съм много сигурен, нека някой да даде по-точно обяснение.

Тагове:
30
Java Advanced 05/09/2014 00:50:20
jabalka avatar jabalka 960 Точки

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

Споделям кода на задачите от първото домашно.

03Hometown

05CurrentDateAndTime

06SumTwoNumbers

07ConsoleBasedCompilation

08SortArrayOfStrings

09GeneratePDF

10JarArchiveConsoleExecution - от терминала се въвежда sh <име на sh файла>

При девета задача всяка карта представлява таблица от една клетка. За да се постигне позиционирането всяка карта е поставена в клетка в по-голяма таблица, която има ширина четири колони. Кодът е пълен с коментари, които описват решението стъпка по стъпка. Решавахме я заедно с kiko - да се знае, че заслугата за кода е споделена.

 

Качих проекта си в GitHub през терминала с помощта на git. Ще ви преведа през процеса стъпка по стъпка:

Забележка – работя в терминала на SoftUni виртуалката

//инсталиране на git под ubuntu

1/ sudo -s командата ще ви позволи да работите като Root

2/ ще ви поиска паролата (developer)

3/ apt-get install git  командата изтегля и инсталира git

 

//същинско качване на проекта в GitHub

4/ Създавате си празно repository в GitHub (ето как)

5/ отваряте терминала и навигирате до папката, в която ви е проекта

6/ //edit: git init командата създава ново repository в директорията

7/ git remote add origin //http:(тук копирате url-a на repository-то от GitHub) командата регистрира ново repository – това, което създадохте в GitHub

8/ git add .  командата добавя файловете на проекта ви в местната repo папка, която създадохме в стъпка 6

9/ git commit -a -m “Initial commit” командата подготвя файловете ви за commit локално, още не са push-нати онлайн, Вместо Initial commit можете да добавите какъвто желаете коментар, който ще опише какво качвате в момента

10/ git push -u origin --all командата качва проекта ви вече в GitHub

//edit: на стъпка 10 ще ви поиска user name и парола на account-a ви в GitHub. Имайте предвид, че докато си пишете паролата, на екрана не излиза нищо - дори здездички (при мен отначало настъпи смут, докато разбера, че просто ми пази паролата и за това не се вижда нищо, като я въвеждам :))

Ако направите промени по проекта си и искате да ги качите в GitHub е необходимо да изпълните само стъпки 9 и 10. Добра практика е в стъпка 9 в коментара да описвате какви промени сте направили в проекта, които качвате в тази сесия.

 //edit: запознаването ми с git и терминала продължава и попаднах на нов проблем, с чието решение ще ви запозная.

Стъпки 9 и 10 ще свършат работа само когато правите промени по вече съществуващи класове. Ако създадете нов клас и изпълните тези стъпки, новите файлове няма да бъдат разпознати и качени, защото са untracked.

Ето как да ги добавите в своето local repo:

11/ git add -i командата изкарва подменю

12/ a командата избира да добавите add untracked - щеизкара списък с всички untracked files от проекта ви

13/ * командата ще добави всички untracked files

14/ q за да приключите с командата

Сега може да се върнете на стъпки 9 и 10 и ще имате качен целия си проект, с новите класове, в GitHub.

 

Това е от мен. Дано ви е полезно!

4
a.angelov avatar a.angelov 1316 Точки

Здравей,

на задача 8 при въвеждане на стринг, който се състои от две думи програмата няма да работи коректно - ще отчете втората дума от стринга като нова дума, например:

Input:

4
добрич
велико търново
бургас

Output:
бургас
велико
добрич
търново

 

За да работи коректно добави преди for цикъла: "input.nextLine();", а задаването на стойносттите на масива в цикъла направи с командата: stringsArray[i] = input.nextLine();

Input:

4
добрич
велико търново
бургас
охрид

Output:
бургас
велико търново
добрич
охрид

 

Поздрави!

3
jabalka avatar jabalka 960 Точки

Благодаря ти! Това не го бях предвидила!

0
jabalka avatar jabalka 960 Точки

Има още една алтернатива за решаване на проблема - 

int да се вземе с парсване: int n = Integer.parseInt(input.nextLine());

Тогава няма да има нужда от добавяне на //input.nextLine(); преди началото на цикъла. Само в самия цикъл пълненето на масива ще се промени както предлагаш: stringsArray[i] = input.nextLine();

Благодаря отново, че ми обърна внимание на проблема :)

1
venconi91 avatar venconi91 18 Точки

От C# basics се знае че задачите със звездичка не са задължителни но какво правим тук когато задача 9 е крайно НЕзадължителна а 10 задача която е задължителна изисква кода от 9 задача ?! За да направим задължителното трябва да направим НЕзадължителното или аз не разбирам нещо ?
Поздрави : )

0
a.angelov avatar a.angelov 1316 Точки

Направи го с кода на предходна задача без звездичка. Предполагам няма да е проблем и ще се зачита. Целта е да се научи как се прави jar файл и как се прави стартиращ скрипт.

2
cvetomill avatar cvetomill 1 Точки

Здравейте, дали някой се сблъсква с проблем с работа на: import java.util.Arrays;

при мен дава грешка и не мога да си подредя масива. Работя под Windows с Eclipse. 

0
cvetomill avatar cvetomill 1 Точки

Да допълня - дава ми грешка тоно на реда: import java.util.Arrays;

а самата грешка е: Type The import java.util.Arrays cannot be resolved

Преполагам е нещо от настройките на Еклиспа, но не намирам решение.

0
cvetomill avatar cvetomill 1 Точки

Със сигурност е нещо от Еклипса. Като пусна програмта през комадния ред си работи и си подрежда масива.

Някой да има идея как да си оправя Еклипса?

0
cvetomill avatar cvetomill 1 Точки

Оправих го :) Просто си свалих друг Еклипс с добавена Java 8, явно първата нещо не съмя бил уцелил.

0
vanina_nenova avatar vanina_nenova 8 Точки

Здравейте,

искам да попитам дали някой се е сблъсквал с подобен проблем -> на задача 9 при мен не се изобразяват боите на картите, чудя се дали е въпрос на encoding настройка, която ми убягва или нещо от външната библиотека itext. Ползвам Ubuntu и съответно Eclipse среда, в кода пробвах да ги задам и по двата начина - директно със символите и с ASCII кода, но така и не се изрисуваха. Опитах да тествам и код на колеги, отново без резултат. Сигурно пропускам нещо...

0
LittleNinja avatar LittleNinja 71 Точки

Мисля, че е заради фонта, който задаваш за BaseFont.. Ти какъв си задала?

1
vanina_nenova avatar vanina_nenova 8 Точки

Тъкмо това си мислех сега. Търсих този стандартния times.ttf, но не можах да го открия и си дръпнах първия срещнат в googlefonts. Явно не поддържа тези символи и просто трябва да намеря times.ttf и да го копирам в папката на проекта, за да не задавам пътища.

0
LittleNinja avatar LittleNinja 71 Точки

За time.ttf отиваш в Control panel там намираш Fonts, от тях Times new roman -> десен бутон -> Copy и си го пействаш където ти трябва, като ще ти пейстне няколко, на теб ти трябва само times.ttf ..

1
pichowskii avatar pichowskii 37 Точки

Проблем ли ще е, ако не напишем задачата с PDF-a?

0
Karlie avatar Karlie 438 Точки

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

1
orlinov avatar orlinov 11 Точки

Ето и моето решение na 9-та задача:

http://pastebin.com/PvdXQ00F

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

 

 

1
Karlie avatar Karlie 438 Точки

По-добре късно, отколкото никога :) Ето и моето решение за 9-та задача -  с таблица е, но има оставени празни клетки, за да изглеждат картите отделени една от друга. PrintCards

0
asyamincheva avatar asyamincheva 20 Точки

Здравейте!

Вмомента правя задачата от домашното с Array - Sort array of strings. Явно има някаква грешка при решението и проблема е в array-a, който ползвам, или for-цикъла. Ето го кода ми: http://pastebin.com/sdMA2rbG

Видях, че ако сменя обхвата на words по този начин: String[] words = new String[count+1]; всичко работи нормално. Опитах се да работя с debug, но бутоните ми за step over & step into & step return & disconnect etc. не са активни, и не мога да разбера защо?

Благодаря за помощта предварително!

0
a.angelov avatar a.angelov 1316 Точки

Сложи пред for цикъла:

s.nextLine();

и ще се оправи.

0
asyamincheva avatar asyamincheva 20 Точки

Извинявай за това, което ще те попитам, просто съм начинаеща с Java... можеш ли да ми обясниш защо така е вярно и имаш ли някаква идея защо не са активни бутоните при Debug?

0
a.angelov avatar a.angelov 1316 Точки

Един колега по-назад в темата е писал каква е причината - един цитат от stack overflow:

The problem is with the input.nextInt() command it only reads the int value. So when you continue reading with input.nextLine() you receive the "\n" Enter key. So to skip this you have to add the input.nextLine(). Hope this should be clear now.

Тоест - при четене на инт се прочита само инт-а. И за следващото четене на NextLine остава натиснатия след четенето на инт Enter - т.е. нов ред. Затова с едно празно четене с s.NextLine() ще прочетеш този Enter и при следващо четене ще хванеш следващия реален input.

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