Премини към съдържанието
Форумът в приложение

По-лесно сърфиране. Научи повече.

Kaldata.com - Форуми

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

За да инсталирате това приложение на iOS и iPadOS
  1. Докоснете Иконата за споделяне в Safari
  2. Превъртете менюто и докоснете Добавяне към началния екран.
  3. Докоснете Добавяне в горния десен ъгъл.
За да инсталирате това приложение на Android
  1. Докоснете менюто с 3 точки (⋮) в горния десен ъгъл на браузъра.
  2. Докоснете Добавяне към началния екран или Инсталиране на приложение.
  3. Потвърдете, като докоснете Инсталиране.

Добре дошли!

Добре дошли в нашите форуми, пълни с полезна информация. Имате проблем с компютъра или телефона си? Публикувайте нова тема и ще намерите решение на всичките си проблеми. Общувайте свободно и открийте безброй нови приятели.

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

 

Търся решение на задача

Featured Replies

Добър ден. Трябва ми решение на първата задача. Ако някой не го мързи, може и 2-рата да направи. Препоръчително е на Java да се направят, но може и на друго. Мерси предварително.

IMG_20170529_085942.jpg

преди 30 минути, Martyn Stanchew написа:

Добър ден. Трябва ми решение на първата задача. Ако някой не го мързи, може и 2-рата да направи. Препоръчително е на Java да се направят, но може и на друго. Мерси предварително.

 

Нас не ни мързи, но вас ви! Показвате огромно неуважение към който и да иска да ви помогне. Не сте преписал условието на задачата, не сте се напънал поне малко да напишете вие....

Здравейте !

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

Spoiler

/** POJO Class for Name
 * @author 
 */
public class Name {
	
	private String first, last;
	
	
	public Name() {
		this("","");
	}

	public Name(String first, String last) {
		super();
		this.first = first;
		this.last = last;
	}

	public String getFirst() {
		return first;
	}

	public void setFirst(String first) {
		this.first = first;
	}

	public String getLast() {
		return last;
	}

	public void setLast(String last) {
		this.last = last;
	}
	
	@Override
	public String toString() {
		return this.first + " " + this.last;
	}
	
}

 

Spoiler

/** POJO Class for Work
 * @author 
 */
public class Work {
	
	private double hours, salaryPerHour;

	public Work() {
		this(0,0);
	}

	public Work(double hours, double salaryPerHour) {
		super();
		this.hours = hours;
		this.salaryPerHour = salaryPerHour;
	}

	public double getHours() {
		return hours;
	}

	public void setHours(double hours) {
		this.hours = hours;
	}

	public double getSalaryPerHour() {
		return salaryPerHour;
	}

	public void setSalaryPerHour(double salaryPerHour) {
		this.salaryPerHour = salaryPerHour;
	}
	
	public double calculateSalary() {
		return this.hours * this.salaryPerHour;
	}

}

 

 

Spoiler

public class Employee {

	private static final String PRINT_SALARY_TEMPLATE = "Salary of employee %s is %f";

	private Work work;
	private Name name;

	public Employee() {
		this(new Name(), new Work());
	}

	public Employee(Name name) {
		this(name, new Work());
	}

	public Employee(Name name, Work work) {
		super();
		this.work = work;
		this.name = name;
	}

	public Work getWork() {
		return work;
	}

	public void setWork(Work work) {
		this.work = work;
	}

	public Name getName() {
		return name;
	}

	public void setName(Name name) {
		this.name = name;
	}

	public void print() {
		System.out.printf(PRINT_SALARY_TEMPLATE, name.toString(), work.calculateSalary());
	}
	
	public void read() {
		Scanner sc = new Scanner(System.in);
		System.out.println("Enter Employee's first name: ");
		getName().setFirst(sc.nextLine());
		System.out.println("Enter Employee's last name: ");
		getName().setLast(sc.nextLine());
		System.out.println("Enter Employee's hours: ");
		getWork().setHours(sc.nextDouble());
		System.out.println("Enter Employee's salary per hour: ");
		getWork().setSalaryPerHour(sc.nextDouble());
		System.out.println("Done !");
		sc.close();
	}

}

 

Spoiler

public class TestEmployee {

	public static void main(String[] args) {
		Employee emp = new Employee();
		emp.read();
		emp.print();
	}
}

 

Spoiler

import java.math.BigDecimal;

public class Fact {
	
	private long x;
	private BigDecimal result;
	
	public Fact(long x) {
		if (x >= 0) {
			this.x = x;
		} else {
			throw new ArithmeticException("Cannot straightforward calculate negative factorial (Gamma Functions required) !!! ");
		}
	}
	
	public BigDecimal value() {
		if (result == null) {
			result = new BigDecimal(1);
			calculate(this.x);
		}
		return result;
	}
	
	private void calculate(long x) {
		if (x > 1) {
			result = result.multiply(new BigDecimal(x));
			calculate(x-1);
		}
	}

	public BigDecimal getResult() {
		return result;
	}
}

 

Spoiler

public class FactTest {
	public static void main(String[] args) {
		System.out.println(new Fact(100).value());
		System.out.println(new Fact(45).value());
		System.out.println(new Fact(200).value());
		System.out.println(new Fact(1000).value());
		System.out.println(new Fact(2).value());
		System.out.println(new Fact(0).value());
		System.out.println(new Fact(-1).value());
	}
}

 

Малко "food for thought" върху горните писания:

1) Както е POJO и има ли почва в Java програмирането ?

2) Защо в класа Fact се използва това чудо BigDecimal и какво всъщност е то ? Защо ако използваме long вместо него, програмата ни ще изкукурига ако сложим число , по-голямо от 20 ?

3) Защо класовете Name, Work и Employee имат по няколко конструктора и какво правят извикванията super() и this() ?

4*) Защо в проверката за подаден параметър на конструктора на Fact е записано, че за числа, по-малки от нула, няма праволинейно решение, което да не използва гама функциите ?

Поздрави !

Редактирано от soundtracker (преглед на промените)

Архивирана тема

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

Разглеждащи това в момента 0

  • Няма регистрирани потребители разглеждащи тази страница.

Дарение

  • Подкрепи съществуването на форума - направи дарение
    25%
    Дарени 252.69 EUR от нужните 1,000.00 EUR

Бюлетин

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

Профил

Навигация

Търсене

Търсене

Конфигуриране на push известия в браузъра

Chrome (Android)
  1. Докоснете иконата на катинар до адресната лента.
  2. Докоснете Разрешения → Известия.
  3. Променете предпочитанията си.
Chrome (Desktop)
  1. Кликнете върху иконата на катинар в адресната лента.
  2. Изберете Настройки на сайта.
  3. Намерете Известия и коригирайте предпочитанията си.