Loading...
genichka avatar genichka 8 Точки

Toy Shop

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

Моля Ви да ми кажете как да дореша задачата,за да ми се получи и недостига.

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

Това е кода ми: https://pastebin.com/ZhDghiHL

Това е условието.

Петя има магазин за детски играчки. Тя получава голяма поръчка, която трябва да изпълни. С парите, които ще спечели иска да отиде на екскурзия. Да се напише програма, която пресмята печалбата от поръчката.

Цени на играчките:

  • Пъзел - 2.60 лв.
  • Говореща кукла - 3 лв.
  • Плюшено мече - 4.10 лв.
  • Миньон - 8.20 лв.
  • Камионче - 2 лв.

Ако поръчаните играчки са 50 или повече магазинът прави отстъпка 25% от общата цена. От спечелените пари Петя трябва да даде 10% за наема на магазина. Да се пресметне дали парите ще ѝ стигнат да отиде на екскурзия.

Вход

От конзолата се четат 6 реда:

  1. Цена на екскурзията - реално число в интервала [1.00 … 10000.00]
  2. Брой пъзели - цяло число в интервала [0… 1000]
  3. Брой говорещи кукли - цяло число в интервала [0 … 1000]
  4. Брой плюшени мечета - цяло число в интервала [0 … 1000]
  5. Брой миньони - цяло число в интервала [0 … 1000]
  6. Брой камиончета - цяло число в интервала [0 … 1000]

Изход

На конзолата се отпечатва:

  • Ако парите са достатъчни се отпечатва:
    • "Yes! {оставащите пари} lv left."
  • Ако парите НЕ са достатъчни се отпечатва:
    • "Not enough money! {недостигащите пари} lv needed."

 

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

Примерен вход и изход

Вход

Изход

Обяснения

40.8

20

25

30

50

10

Yes! 418.20 lv left.

Сума: 20 * 2.60 + 25 * 3 + 30 * 4.10 + 50 * 8.20 + 10 * 2 = 680 лв.

Брой на играчките: 20 + 25 + 30 + 50 + 10 = 135

135 > 50 => 25% отстъпка; 25% от 680 = 170 лв. отстъпка

Крайна цена: 680 – 170 = 510 лв.

Наем: 10% от 510 лв. = 51 лв.

Печалба: 510 – 51 = 459 лв.

459 > 40.8 => 459 – 40.8 = 418.20 лв. остават

Вход

Изход

Обяснения

320

8

2

5

5

1

Not enough money! 238.73 lv needed.

Сума: 90.3 лв.

Брой на играчките: 21

21 < 50 => няма отстъпка

Наем: 10% от 90.3 = 9.03 лв.

Печалба: 90.3 – 9.03 = 81.27 лв.

81.27 < 320 => 320 – 81.27 = 238.73 лв. не достигат

Тагове:
1
Programming Basics
user184 avatar user184 14 Точки

25% отстъпка има само тогава, когато броят на играчките е по - голям или равен на 50. Доколкото виждам в този код  е възможно 2 пъти да се направи една и съща отстъпка. Това са излишните редове:

double otstapka = 0.25*suma;

double  krainacena = suma - otstapka;

 

Също така наема се пресмята след първата if проверка, а не преди нея.

0
Didocha avatar Didocha 9 Точки

Аз уча C# , но по логика, според мен трябва тези променливи:

    double  krainacena = suma - otstapka;

    double  naem = 0.10*krainacena;

    double  pechalba = krainacena - naem;

    double ostavashtipari = pechalba - cenanaekskurzia;

    double nedostig = cenanaekskurzia - pechalba;

да ги изнесеш след първата проверка за броя на играчките.

Също ...

    double otstapka = 0.25*suma;      // което е горе го дефинираи като  нула.

Която нула ще се промени в проверката за боря на играчките, там трябва да дефинираш само ОТСЪПКАТА !

което значи, че в else  тя трябва да е нула.

 

 

0
Didocha avatar Didocha 9 Точки

Аз уча C# , но по логика, според мен трябва тези променливи:

    double  krainacena = suma - otstapka;

    double  naem = 0.10*krainacena;

    double  pechalba = krainacena - naem;

    double ostavashtipari = pechalba - cenanaekskurzia;

    double nedostig = cenanaekskurzia - pechalba;

да ги изнесеш след първата проверка за броя на играчките.

Също ...

    double otstapka = 0.25*suma;      // което е горе го дефинираи като  нула.

Която нула ще се промени в проверката за боря на играчките, там трябва да дефинираш само ОТСЪПКАТА !

което значи, че в else  тя трябва да е нула.

0
genichka avatar genichka 8 Точки

Благодаря много.Получи се задачата.

Лек ден.

0
gtsonkov avatar gtsonkov 59 Точки

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

Поправих кода, който си споделила и със (//) съм вмъкнал коментари към прометите, прочети ги внимателно и виж къде са ти грешките. Но като цяло проблема е, че не се придържаш към условието.

 

https://pastebin.com/SqPBApBe

0
16/09/2018 15:35:08
gtsonkov avatar gtsonkov 59 Точки

само да добавя, че навсякъде където има // кода или думите след тях не се изпълняват от програмата и служат само за информация (просто текст)

0
genichka avatar genichka 8 Точки

Благодаря много.Махнах ненужното.   :)

0
HristoNikolov444 avatar HristoNikolov444 16 Точки

на С++

 

#include <iostream>
#include <iomanip>
#include<cmath>
using namespace std;
 
int main()
{
    double cenanaekskurzia;
    cin >> cenanaekskurzia;
    int broipazeli, broigovoreshtikukli, broiplushenimecheta, broiminioni, broikamioncheta;
    cin >> broipazeli >> broigovoreshtikukli >> broiplushenimecheta >> broiminioni >> broikamioncheta;
 
    double suma = broipazeli*2.60 + broigovoreshtikukli * 3 + broiplushenimecheta*4.10 + broiminioni*8.20 + broikamioncheta * 2;
    double broiigrachki = broipazeli + broigovoreshtikukli + broiplushenimecheta + broiminioni + broikamioncheta;
    //double otstapka = 0.25*suma; - ne se izchislqva tuk
    double pechalba = 0.00;
    //double  krainacena = suma - otstapka; - izlischno
    //double  naem = 0.10*krainacena; - ne mu e nqstoto tuk
    //double  pechalba = krainacena - naem; ne mu e mqstoto tuk
    //double ostavashtipari = pechalba - cenanaekskurzia; - ne mu e mqstoto tuk
    //double nedostig = cenanaekskurzia - pechalba; - ne mu e mqstoto tuk
   
    if (broiigrachki >= 50)
    {
        // tuk izchislqvame otstapkata ako igrachkite sa >= 50 br.
         pechalba = suma - suma * 25.0 / 100; // tova e otstapkata
        pechalba = pechalba - (pechalba * 10) / 100; // tova e naema sled nachislenata otstapka
    }
    else
    {
        // ako igrachkite sa po-malko ot 50 togava nachislqvame samo naema
        pechalba = suma - (suma * 10.0 / 100);
       
    }
    double ostavashtipari = abs(pechalba - cenanaekskurzia); // s pomoschta na abs() vzimame absoliutnata stojnost na izraza i taka go otpechatvame ne kato otricatelno chislo ako parite ne dostigat
   
    if (pechalba >= cenanaekskurzia)
    {
        // ako pechalbata e dostatachna za ekskurziata
        cout << fixed << setprecision(2) << "Yes!" << " " << ostavashtipari << " lv left." << endl;
    }
    else
    {
        // ako pechalbata ne e dostatachna za ekskurziata
        pechalba *= 0.75;
        cout << fixed << setprecision(2) << "Not enough money!" << " " << ostavashtipari << " lv needed." << endl;
    }
 
    return 0;
}

0
gstoichkov avatar gstoichkov 2 Точки

Ако не е написано и на "шльокавица" всичко ще бъде перфектно.

-колкото до решението е супер 

@HristoNikolov444

0
Edzhevit avatar Edzhevit 79 Точки

https://pastebin.com/A9NQRimN

Ето моето решение.

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