Loading...
k.kermedchiev avatar k.kermedchiev 0 Точки

Aluminum Joinery

Здравейте,

Задачата 03. Aluminum Joinery от Programming Basics Online Exam - 18 and 19 July 2020 ми дава 72/100.

 

Задача 3. Алуминиева дограма

Фирма-производител на алуминиева дограма приема поръчки за изработката и монтаж със следния ценоразпис за един брой. Фирмата приема само поръчки на едро (над 10 бр.). В зависимост от поръчания брой дограми, фирмата прави различна отстъпка на своите клиенти.
Фирмата предлага също и доставка на поръчките си срещу 60 лв.

Размер

Единична цена

Отстъпка от цената

90X130

110 лв.

 Над 30 броя – 5%
 Над 60 броя – 8%

100X150

140 лв.

 Над 40 броя – 6%

   Над 80 броя – 10%

130X180

190 лв.

 Над 20 броя – 7%
   Над 50 броя – 12%

200X300

250 лв.

 Над 25 броя – 9%

   Над 50 броя – 14%

 

 

 

 

 

 

 

 

 

 

Ако поръчката надвишава 99 броя  върху крайната цена се начисляват допълнителни 4% отстъпка (след като се начисли цената за доставка, ако има такава).
При поръчка под 10 бр. на конзолата да бъде изписано "Invalid order"

Вход:

Потребителят въвежда 3 реда:

  1. Брой дограми цяло число в интервала [0..1000];
  2. Вид на дограмите текст "90X130" или "100X150" или "130X180" или "200X300";
  3. Начин на получаване текст
    • С доставка - "With delivery"
    • Без доставка - "Without delivery"

Изход:

Извежда се едно число – стойността на поръчката, в следния формат:

  • "{Обща стойност на поръчката} BGN"

Резултатът да се форматира до втори знак след десетичната запетая.

 

Моето решение : https://pastebin.com/GGQj7vZJ 

 

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

 

Тагове:
0
Programming Basics
Axiomatik avatar Axiomatik 2422 Точки
Best Answer

=> Check out this discussion : https://softuni.bg/forum/20908/programming-basics-online-exam-14-and-15-april-2018-3-aluminium-joinery-imam-nujda-ot-pomosht-nemoga-da-razbera-kyde-gresha

Code:

function joinery(input) {
    let pvcCount = Number(input[0]);
    let pvcType = input[1];
    let deliveryType = input[2];
    let pvcPrice = 0;
    let total = 0;
    let priceAfterDiscount = 0;

    if (pvcCount <= 10) {
        console.log(`Invalid order`)
    } else if (pvcCount > 10) {
        switch (pvcType) {
            case '90X130':
                pvcPrice = 110;
                total = pvcPrice * pvcCount;

                if (pvcCount > 60) {
                    priceAfterDiscount = total - total * 0.08;

                } else if (pvcCount > 30) {
                    priceAfterDiscount = total - total * 0.05;

                } else {
                    // pvcPrice = pvcPrice;
                    // priceAfterDiscount needs to be changeds
                    priceAfterDiscount = total;
                }

                break;
            case '100X150':
                pvcPrice = 140;
                total = pvcPrice * pvcCount;

                if (pvcCount > 80) {
                    priceAfterDiscount = total - total * 0.10;
                } else if (pvcCount > 40) {
                    priceAfterDiscount = total - total * 0.06;
                } else {
                    // pvcPrice = pvcPrice
                    priceAfterDiscount = total;
                }

                break;

            case '130X180':
                pvcPrice = 190;
                total = pvcPrice * pvcCount;

                if (pvcCount > 50) {
                    priceAfterDiscount = total - total * 0.12;
                } else if (pvcCount > 20) {
                    priceAfterDiscount = total - total * 0.07;
                } else {
                    // pvcPrice = pvcPrice
                    priceAfterDiscount = total;
                }

                break;

            case '200X300':
                pvcPrice = 250;
                total = pvcPrice * pvcCount;

                if (pvcCount > 50) {
                    priceAfterDiscount = total - total * 0.14;
                } else if (pvcCount > 25) {
                    priceAfterDiscount = total - total * 0.09;
                } else {
                    // pvcPrice = pvcPrice
                    priceAfterDiscount = total;
                }

                break;
        }

        if (deliveryType === 'With delivery') {
            priceAfterDiscount = priceAfterDiscount + 60
        }

        // Ако поръчката надвишава 99 броя 
        // if (pvcCount > 100) {
        if (pvcCount > 99) {
            priceAfterDiscount = priceAfterDiscount * 0.96
        }

        console.log(priceAfterDiscount.toFixed(2) + ' BGN')
    }
}

 

0
k.kermedchiev avatar k.kermedchiev 0 Точки

Благодаря!

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