BG Development


Страници: (4) [1] 2 3 ... последна »  ( Първото ново мнение ) Reply to this topicStart new topicStart Poll

> Затруднения със задачи за начинаещи..., Нуждая се от малко насоки
Unchained
Публикувано на: 16-02-2011, 23:46
Quote Post



Име: Габриел Димитров
Група: Потребител
Ранг: Новопостъпил

Мнения: 5
Регистриран на: 16.02.11



Здравейте!
Радвам се, че това е първият ми коментар във форума, надявам се интересът ми към областта програмиране да се задържи и да бъда част от вашата общност. icon_smile.gif От любопитство просто реших да опитам и така преди около 2-3 седмици започнах да се занимавам с книжката "Въведение в програмирането с Java". В началото всичко ми е много интересно, чета книгата с удоволствие и се стремя да разбирам нещата максимално - не бързам за никъде, затова често препрочитам и се упражнявам върху едно нещо по няколко пъти, така че да го усвоя напълно. Но... Ето, че още след втора глава(Оператори и изрази) - последните упражнения ме затрудниха доста и така реших да се обърна към вас. icon_smile.gif
За тези става въпрос:
QUOTE

8. Напишете програма, която проверява дали дадена точка О (x, y) е
вътре в окръжността К ((0,0), 5).
9. Напишете програма, която проверява дали дадена точка О (x, y) е
вътре в окръжността К ((0,0), 5) и е извън правоъгълника ((-1, 1), (5,
5).
10. Напишете програма, която приема за вход четирицифрено число във
формат abcd и след това извършва следните действия върху него:
- Пресмята сбора от цифрите на числото.
- Разпечатва на конзолата цифрите в обратен ред: dcba.
- Поставя последната цифра, на първо място: dabc.
- Разменя мястото на втората и третата цифра: acbd.
11. Дадено е число n и позиция p. Напишете поредица от операции, които
да отпечатат стойността на бита на позиция p от числото n (0 или 1).
Пример: n=35, p=5 -> 1. Още един пример: n=35, p=6 -> 0.
12. Дадено е число n, стойност v (v = 0 или 1) и позиция p. Напишете
поредица от операции, които да променят стойността на n, така че
битът на позиция p да има стойност v. Пример n=35, p=5, v=0 -> n=3.
Още един пример: n=35, p=2, v=1 -> n=39.
13. Напишете програма, която проверява дали дадено число n (n < 100) е
просто.


По 8 и 9 по-скоро ме затруднява математическото им решение - добър съм по математика, но не съм отличник, тоест явно това не е достатъчно. icon_redface.gif За осма в "решения и упътвания" пише да използвам питагоровата теорема, но не разбирам в какъв смисъл. Просто трябва да задам произволни стойности на а, b и чрез логически оператор или булев израз да "проверя" дали се получава 5 за c?
Относно 10 задача - това сигурно става със Scanner, но "Вход и изход от конзолата" е следващият дял и не съм достатъчно запознат.
11, 12, 13 не съм ги пробвал все още. Първо искам да реша тези, които се водят по-лесни. Надявам се като за първи път да ми дадете някакви насоки, за да се досетя или ако това не се случи, в крайна сметка бих помолил да ми разясните решението.

Поздрави,
Габриел! (17 год.) icon_smile.gif
PMEmail Poster
Top
BlackDragon
Публикувано на: 17-02-2011, 00:04
Quote Post



Име: Стан
Група: Потребител
Ранг: Редовен член

Мнения: 383
Регистриран на: 21.02.10



user posted image
На картинката има окръжност, точка с Х и Y координати и питагорова теорема.
Радиуса на окръжността на картинката е 1, но това няма значение, при теб е 5.

Помисли от какво зависи къде лежи точката (вътре,вън,върху) и как можеш да използваш питагоровата теорема (вж. картинката)?

Тва би трябвало да е достатъчно като хинт, ако не - кажи.

Продължавай да се занимаваш и не се отказвай, браво icon_smile.gif


--------------------
PMEmail Poster
Top
Drak
Публикувано на: 17-02-2011, 09:39
Quote Post



Име: Борис
Група: Потребител
Ранг: Новопостъпил

Мнения: 26
Регистриран на: 15.12.10



Здравей,
първо поздравления че си решил да учиш програмиране, това е нещо страхотно icon_smile.gif
За 9-та задача ако имаш въпроси питай пак.
За 10-та , щом не знаеш въвеждането как е имаш два избора
1-ви да го прочетеш като отидеш по напред в книгата
2-ри да задаваш числото статично в програмата т.е. правилно казано е да го инициализираш с постоянна стойност вътре в програмата.
По това как трябва да решиш задачата, ще се опитам само насоки да ти дам, за да помислиш и да откриеш решението сам icon_smile.gif ако не можеш ще дам още жокери.
за да извършиш каквито и да е действия с a,b,c,d трябва първо да се разбие цялото число abcd на отделни цифри - a,b,c,d
т.е. трябва да измислиш как да го разделиш и следователно като ги разделиш какво ще ги правиш(т.е. къде ще ги съхраниш, за да може да ги ползваш след това) на страница 159 "Аритметични оператори" и примерите към тях.
Помисли малко ако не успееш казвай да се опитаме да дадем още насоки icon_smile.gif.
По другите задачи помисли и после ще ги обсадим icon_smile.gif

Поздрави.


--------------------
Поздрави,
инж. Борис Гуцев
http://gutsev.com
PMEmail PosterUsers WebsiteICQ
Top
xcyb3r
Публикувано на: 17-02-2011, 10:11
Quote Post



Име:
Група: Потребител
Ранг: Посетител

Мнения: 149
Регистриран на: 27.08.08



За 10 задача можеш по два начина:
1) Ако приемем, че числото ти е abcd, цифрата a се получава като abcd/1000. Цифрата b се получава като разделим abcd/100 и извадим от него a*10 и натам продължи сам.

2)
CODE
int d = number%10;

int newNumber = number/10;

int c = newNumber%10;

newNumber = newNumber/10;

Има и други начини, но затова се бях сетил тогава, когато решавах задачите от книгата. icon_wink.gif


--------------------
[DIY or DIE]
" But his lonely mind is his only friend ... "
PMEmail Poster
Top
Unchained
Публикувано на: 18-02-2011, 07:50
Quote Post



Име: Габриел Димитров
Група: Потребител
Ранг: Новопостъпил

Мнения: 5
Регистриран на: 16.02.11



QUOTE

class Ex8 {
public static void main(String[] args) {
 
  byte c = 5;
  byte x, y;

  x = 0;
  y = 0;
  boolean xy = ((x*x) + (y*y)<=c);
 
  System.out.println(xy);
}
}

Ето какво измъдрих рано сутринта. Нямам време и сега бързам, не знам как се степенува, затова просто ги умножих. Благодаря на всички за отговорите, през уикенда ще решавам повече. icon_smile.gif
PMEmail Poster
Top
Unchained
Публикувано на: 18-02-2011, 20:53
Quote Post



Име: Габриел Димитров
Група: Потребител
Ранг: Новопостъпил

Мнения: 5
Регистриран на: 16.02.11



Мисля, че направих и десето без проблем, само трябваше да се опитам, а аз явно съм се уплашил. icon_smile.gif
Да кажем, че съм правил нещо като контролна. Ако ви се занимава с начинаещ, бих ви помолил да ми кажете дали съм на прав път, решил ли съм задачите както трябва? Благодаря! icon_smile.gif

Ето всички упражнения от 1 до 10:
QUOTE

1. Напишете израз, който да проверява дали дадено цяло число е четно
или нечетно.
2. Напишете булев израз, който да проверява дали дадено цяло число се
дели на 5 и на 7 без остатък.
3. Напишете израз, който да проверява дали дадено цяло число съдържа
7 за трета цифра (отдясно на ляво).
4. Напишете израз, който да проверява дали третия бит на дадено число
е 1 или 0.
5. Напишете програма, която за подадени дължина и височина на
правоъгълник, изкарват на конзолата неговият периметър и лице.
6. Напишете израз, който изчислява площта на трапец по дадени a, b и h.
7. Силата на гравитационното поле на луната е приблизително 17% от
това на земята. Напишете програма, която да изчислява тежестта на
човек на луната, по дадената тежест на земята.
8. Напишете програма, която проверява дали дадена точка О (x, y) е
вътре в окръжността К ((0,0), 5).
9. Напишете програма, която проверява дали дадена точка О (x, y) е
вътре в окръжността К ((0,0), 5) и е извън правоъгълника ((-1, 1), (5,
5).
10. Напишете програма, която приема за вход четирицифрено число във
формат abcd и след това извършва следните действия върху него:
- Пресмята сбора от цифрите на числото.
- Разпечатва на конзолата цифрите в обратен ред: dcba.
- Поставя последната цифра, на първо място: dabc.
- Разменя мястото на втората и третата цифра: acbd.


...И техните решения от мен:

QUOTE

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

   int a = 10;
   boolean ex1 = (a % 2)==0;

  System.out.println(ex1);
}
}


QUOTE

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

   int a = 35;
   boolean ex2 =  (a % 5)==0 && (a % 7)==0;

  System.out.println(ex2);
}
}


QUOTE

class Ex3 {
public static void main(String[] args) {
 
   int a = 667 % 100;
  System.out.println(a);

   int b = a % 10;
  System.out.println(b );

   boolean c = (b==7);
  System.out.println(c );
}
}


QUOTE

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

   int a = 4;
   int b = 6;
   boolean ex4 = (a & b ) != 0;

  System.out.println(ex4);
}
}


QUOTE

class Ex5 {
public static void main(String[] args) {
  
   int h = 30;
   int w = 20;

  System.out.println("Perimeter = " + (2*(w+h)));
  System.out.println("Area = " + (w * h));
}
}


QUOTE

class Ex6 {
public static void main(String[] args) {
 
   int a = 5;
   int b = 7;
   int h = 6;
 
  System.out.println(((a + b ) / 2) * h);
}
}


QUOTE

import java.util.Scanner;

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

  Scanner input = new Scanner(System.in);

   int weightNum;

  System.out.print("Kolko kg ste na Zemyata: ");
   weightNum = input.nextInt();
  
  System.out.println("Kolko shte tejite na Lunata: " + (((float) weightNum * 17) / 100f));
}
}


QUOTE

class Ex8 {
public static void main(String[] args) {
 
   byte c = 5;
   byte x, y;

   x = 0;
   y = 0;
   boolean xy = ((x*x) + (y*y)<=c);
 
  System.out.println(xy);
}
}


QUOTE

class Ex9 {
public static void main(String[] args) {
  
   int x, y;
   x = y = 0;

   boolean xy = (x*x) + (y*y) <= 5;
  System.out.println(xy);

   boolean xyabcd = (x*x) + (y*y) > 5;
  System.out.println(xyabcd);
}
}


QUOTE

class Ex10 {
public static void main(String[] args) {
 
   int abcd = 1000;
   int a = abcd / 1000;
   int b, c, d;
   b = c = d = (abcd / 100) - (a * 10);

  System.out.println("Sum = " + a + b + c + d);

   String dcba = "DCBA = " + d + c + b + a;
  System.out.println(dcba);

   String dabc = "DABC = " + d + a + b + c;
  System.out.println(dabc);

   String acbd = "ACBD = " + a + c + b + d;
  System.out.println(acbd);
}
}


Това мнение е било редактирано от Unchained на 19-02-2011, 00:30
PMEmail Poster
Top
Drak
Публикувано на: 22-02-2011, 11:57
Quote Post



Име: Борис
Група: Потребител
Ранг: Новопостъпил

Мнения: 26
Регистриран на: 15.12.10



Здравей,
На трета задача си се объркал, условието е трета цифра от дясно на ляво а ти си направил от ляво на дясно.
По другите задачи някой може и по добре ама с времето ще го разбереш, още си в началото.
само съвет от сега, имена като Ex2 не са много подходящи, именувай така че утре като видиш името да може да разбереш за какво служи тоя клас. знам че сега това са малки примерчета и ти е гадно да мислиш подходящи имена, ама така ще свикнеш и утре като пишеш нещо сериозно няма да ги наслагаш с безмислени имена. Това е с цел по добра четимост и разбираемост на кода.
Поздрави.


--------------------
Поздрави,
инж. Борис Гуцев
http://gutsev.com
PMEmail PosterUsers WebsiteICQ
Top
Drak
Публикувано на: 22-02-2011, 12:03
Quote Post



Име: Борис
Група: Потребител
Ранг: Новопостъпил

Мнения: 26
Регистриран на: 15.12.10



А и още забравих, 10-та ми се струва грешна, не съм я пробвал но ми се струва грешна.
Единия вариант е :последователно да отделяш цифрите отдясно на ляво и да ги запазваш в отделните променливи, така както си го направил в b,c,d ще има една и съща стойност.
Прави теста с числото 1234, по този начин ще виждаш какво се случва, 1000 не е подходящо за тестване.
Поздрави и успехи в следващите глави icon_smile.gif


--------------------
Поздрави,
инж. Борис Гуцев
http://gutsev.com
PMEmail PosterUsers WebsiteICQ
Top
Drak
Публикувано на: 01-03-2011, 14:33
Quote Post



Име: Борис
Група: Потребител
Ранг: Новопостъпил

Мнения: 26
Регистриран на: 15.12.10



Здравей,
първо честита баба марта icon_smile.gif
сега ти погледнах 8-ма задача, и мисля че имаш малка грешка, ако аз греша моля някой да ме поправи.
Питагоровата теорема е a*a +b*b = c*c
т.е. израза ти трябва да е (корен квадратен от (x*x + y*y)) < 5 или <= ако искаш да лежи на окръжността.
Поздрави.

Това мнение е било редактирано от Drak на 01-03-2011, 14:34


--------------------
Поздрави,
инж. Борис Гуцев
http://gutsev.com
PMEmail PosterUsers WebsiteICQ
Top
Unchained
Публикувано на: 06-03-2011, 00:51
Quote Post



Име: Габриел Димитров
Група: Потребител
Ранг: Новопостъпил

Мнения: 5
Регистриран на: 16.02.11



Както и да е, мисля че усвоих работата с оператори и изрази, а това беше целта. icon_smile.gif Сега минавам на следващия дял... Ако има затруднения пак ще пиша. Благодаря!
PMEmail Poster
Top
1 потребители преглеждат тази тема в момента (1 гости, 0 анонимни потребители)
Потребители, преглеждащи темата в момента:

Topic Options Страници: (4) [1] 2 3 ... последна » Reply to this topicStart new topicStart Poll

 


Copyright © 2003-2015 | BG Development | All Rights Reserved
RSS 2.0