Не трать деньги понапрасну 24/24

А зачем так нервничать?)))))) Я это уже поняла))))

Фух… Я не один такой. Как же сильно меня выбесило техническое задание в этом упражнении. Я перечитывал и перечитывал данный абзац в попытках осознать что от меня хотят, но всё в пустую…

9 лайков

А я тоже думал что я один такой… Данное условие "Обрати внимание, что срочный проект принесёт прибыль за то время, пока готовился бы обычный проект. Поэтому прибыль от срочного проекта нужно вычесть из его стоимости.” вообще не понятно. Даже решать не стал после того как целый час пытался понять что от меня требуется.

3 лайка

Пожалуйста, помогите найти ошибку:
let getPrice = function (time, isUrgent) {
let hourPrice = 1500;

if (isUrgent) {
time /= 2;
hourPrice *= 2.5;
}
if (time > 150) {
hourPrice -= 250;
}
let price = time * hourPrice;
return price;
}

let getProfitableProject = function (time, profit) {
let urgentProject = getPrice(time, true) - profit;
let commonProject = getPrice(time, false);

if (urgentProject > commonProject) {
return 'Выгодней обычный проект. Потратишь на него ’ + urgentProject;
} else {
return 'Выгодней срочный проект. Потратишь на него ’ + commonProject;
}
}

Специально зарегистрировалась, ради того, чтобы тоже подтвердить, что очень непонятная формулировка задачи
“Обрати внимание, что срочный проект принесёт прибыль за то время, пока готовился бы обычный проект. Поэтому прибыль от срочного проекта нужно вычесть из его стоимости.” , сидела, думала, пытаясь понять откуда, что вычесть нужно :thinking:

По поводу теории, согласна, она очень размытая, лучше перед тем как проходить задачи где -то прочитать про JavaScript.

Мне помогла книга для детей))) JavaScript для детей. Самоучитель по программированию / Ник Морган. После нее проходишь уже с более менее пониманием того, что происходит, а до этого просто смотришь, что нужно, ничего особо не понимаешь… копировать, вставить, а сам потом ни строчки, не можешь написать!

3 лайка

У меня получился вот такой вариант:

let getPrice = function (time, alert) {
let rate = 1500;
if (alert) {
time = time / 2;
rate = rate * 2.5;
}
if (time > 150) {
rate = rate - 250;
}

let price = time * rate;

return price;
}

let getProfitableProject = function (time, profit) {
let alert = getPrice(time, true) - profit;
let noAlert = getPrice(time, false);
if (alert < noAlert) {
return 'Выгодней срочный проект. Потратишь на него ’ + alert;
} else {
return 'Выгодней обычный проект. Потратишь на него ’ + noAlert;
}
}

let getProfitableProject = function (timeInHours, urgentProfit) {
  
  let rate = 1500;
  
  let urgentPrice = (timeInHours / 2) * (rate * 2.5);
  
  let generalPrice;
   
   if(timeInHours > 150) {
    generalPrice = timeInHours * (rate - 250);
  }else{
    generalPrice = timeInHours * rate;
  }
    
  let urgentCost = urgentPrice - urgentProfit;
  
  if(generalPrice < urgentCost) {
    return 'Выгодней обычный проект. Потратишь на него ' + generalPrice;
  }else {
    return 'Выгодней срочный проект. Потратишь на него ' + urgentCost;
  }

}
let getPrice = function (time, isUrgent) {
  let pricePerHour = 1500;
  if (isUrgent) {
    time *= 0.5;
    pricePerHour *= 2.5;
  }
  if (time > 150) {
    pricePerHour -= 250;
  }
  return time * pricePerHour;
}

let getProfitableProject = function (time, profit) {
  let urgentProjectPrice = getPrice(time, true) - profit;
  let usualProjectPrice = getPrice(time, false);
  let expenses = usualProjectPrice;
  let profitableProject = 'обычный';
  if (urgentProjectPrice < usualProjectPrice) {
    expenses = urgentProjectPrice;
    profitableProject = 'срочный';
  }
  return 'Выгодней ' + profitableProject + ' проект. Потратишь на него ' + expenses;
}

Это что такое - $ Это мы не проходили, это нам не задавали.

Вообще пройдя сначала “Знакомство с JS” и перейдя к “Программирование на JS” у меня возникло много вопросов в логике расположения тем. Потому что в главе “Программирование на JS” даются основы того, что в “Знакомство с JS” было бегло и между прочим. Хотя по “понятности” глава знакомства явно написана удачнее, чувствуется, что разные авторы.

P.S. По обилию комментариев понятно, что дело не в тебе, а в ТЗ.

1 лайк

Ска чувак, я уже час насилую свой мозг и не могу понять что у меня не так, строку выводит ту что надо и расчет верный но " Результат функции getProfitableProject равен undefined и не совпадает с ожидаемым значением". И тут я захожу на форум, читаю твое сообщение и вуаля, код валиден. Благодарю тебя бро.

let getPrice = function (time, isTrue) {

let cost = 1500;

if (isTrue) {time = time / 2; cost = cost * 2.5 }
if (time > 150) {cost = cost - 250};

let price = time * cost;

return price
}

let getProfitableProject = function (time, profit) {

let quickly = getPrice (time, true) - profit;
let usually = getPrice (time, false);

if (quickly < usually ) {
return ('Выгодней срочный проект. Потратишь на него ’ + quickly)
}

else {
return ('Выгодней обычный проект. Потратишь на него ’ + usually)
}
}

Мой вариант решения:

let getPrice = function(hours, projectUrgency) {
  let fixedRate = 1500;
  let endHours = hours;
  
  if (projectUrgency) {
    endHours = hours / 2;
    fixedRate *= 2.5;
  }
  
  if (endHours > 150) {
    fixedRate -= 250;
  }
  return endHours * fixedRate;
}

let getProfitableProject = function (projectInHours, profit) {
  let urgentProject = getPrice(projectInHours, true) - profit;
  let project = getPrice(projectInHours, false);
  
  if (urgentProject < project) {
    return 'Выгодней срочный проект. Потратишь на него ' + urgentProject;
  } else {
    return 'Выгодней обычный проект. Потратишь на него ' + project;
  }
}

let getPrice = function(time, urgent) {
let bet = 1500;
if(urgent) {
time /= 2;bet *= 2.5;
}
if(time > 150) {
bet -= 250;
}
return summ = time * bet;
}
let getProfitableProject = function (time, profit) {
let ordinary = getPrice(time,false);
let urgent = getPrice(time,true) - profit;
let mark = 'срочный ';
let summ = urgent;
if(ordinary < urgent) {
mark = 'обычный ';
summ = ordinary;
}
return 'Выгодней ’ + mark + 'проект. Потратишь на него ’ + summ;
}

Добрый день.
У вас в этой части кода переменные перепутаны местами. Поменяйте их наоборот и код заработает.

Вот вот, я так же сейчас прохожу это задание и нечего не изменилось. Сейчас буду пытаться разобраться с помощью форума!

console.log() тоже работает, если ВЫЗВАТЬ ФУНКЦИЮ С УКАЗАНИЕМ ПАРАМЕТРОВ.
getProfitableProject (100, 150000);
А в данном случае ничего не выводит в консоль, потому что не знает значения параметров time, profit.

var getPrice = function(time, isUrgent) {
var fixCost = 1500;

if(isUrgent) {
fixCost *= 2.5;
time /= 2;
if (time > 150) {
fixCost -=250;
return fixCost * time;
}
return fixCost * time;
}
else if (time > 150) {
fixCost -= 250;
return fixCost * time;
}
else {
return fixCost * time;
}
}

var getProfitableProject = function (time, earnings) {
var urgentProject = getPrice(time, true) - earnings;
var notUrgentProject = getPrice(time, false);
if(urgentProject < notUrgentProject) {
return 'Выгодней срочный проект. Потратишь на него ’ + urgentProject
}
else {
return 'Выгодней обычный проект. Потратишь на него ’ + notUrgentProject
}
}

Мое решение задачи.
Я почему-то вцепился в это условие.

Функция принимает на вход два параметра:

  • время на проект в часах;
  • прибыль, которую принесёт сайт, если будет сделан в срочном режиме.

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

Очень долго не мог понять условие зади в целом, но наверное с этим многие сталкиваються

let getPrice = function(time, rushJob){
  
  let rate = 1500;
  
  if(rushJob){
    time /= 2;
    rate *= 2.5;
  }

  if(time > 150){
    return (rate - 250) * time;
  }else{
    return rate * time;
  }
}

let getProfitableProject = function(time, income){
  
    let fastProject = getPrice(time, true) - income;
    let normalProject = getPrice(time, false);
    
    if(fastProject < normalProject){
      return 'Выгодней срочный проект. Потратишь на него ' + fastProject;
    }else{
      return 'Выгодней обычный проект. Потратишь на него ' + normalProject;
    }
}
let getPrice = function (time, priority) {
  let price = 1500;
  if (priority) {
    time /= 2;
    price *= 2.5;
  }
  if (time > 150) {
    price -= 250;
  }
  return price * time;
}

let getProfitableProject = function (time, profit) {
  let priorityProjectCost = getPrice(time, true) - profit;
  let usualProjectCost = getPrice(time, false);
  if (priorityProjectCost < usualProjectCost) {
    return 'Выгодней срочный проект. Потратишь на него ' + priorityProjectCost;
  }
  return 'Выгодней обычный проект. Потратишь на него ' + usualProjectCost;
}
1 лайк