Професионална програма
Loading...
+ Нов въпрос
genichka avatar genichka 8 Точки

Zadacha Cinema

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

Моля Ви за помощ.Ако е възможно да ми дадете примерно решение.

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

Това е кода

https://pastebin.com/Z838DDKJ

А това е условието:

Задача 4. Кино
От кино ви наемат да напишете програма, чрез която да разберете дали на една прожекцията ще се запълни залата и колко пари ще се изкарат от нея. Получавате места в залата и на всеки следващ ред до команда "Movie time!", колко хора влизат в залата. Цената на един билет е 5 лв. Ако текущия брой хора влезли в залата се дели на 3 без остатък, се прави отстъпка 5лв от общата им сметка. 
Ако в залата се опитат да влязат повече хора от колкото места са останали, то се счита че местата са изчерпани и програмата трябва да приключи четенето на вход.
Вход
От конзолата се четат:
На първия ред - капацитет на залата - цяло число в интервала [50... 150]
На всеки следващ ред до команда "Movie time!":
Брой хора влизащи в киното - цяло число в интервала [1… 15]
Изход
На конзолата първо да се отпечата един ред:
При получена команда "Movie time!":
 "There are {останали места} seats left in the cinema."
При изчерпване на местата в залата:
    "The cinema is full."
След това да се отпечата:
    "Cinema income - {приходи от залата} lv."
Примерен вход и изход
 
Вход    Изход    Обяснения       
60
10
6
3
20
15
Movie time!    There are 6 seats left in the cinema.
Cinema income - 255 lv.    Първо получаваме капацитет на залата - 60 места. На следващият ред получаваме хората, които са влезли в залата - 10. Парите, който те ще заплатят са 10 * 5 = 50. След това получаваме, че в залата влизат 6 човека, тяхната бройка се дели на 3 и плащат с 5 лв. по-малко. Аналогично продължаваме до команда  "Movie time!" като принтираме съответният изход.       
50
15
10
10
15
5    The cinema is full.
Cinema income - 240 lv.           
100
10
10
10
10
10
10
10
10
10
10
Movie time!    There are 0 seats left in the cinema.
Cinema income - 500 lv.         
 

Тагове:
0
Programming Basics with C++
RuNNeR4142 avatar RuNNeR4142 395 Точки

Ако командата не е Movie Time, значи е число
и трябва да го парснеш за да получиш броя на хората които влизат.
В края на while трябва да подаваш нов command и да се проверява в условието на while.
Изходът с проверка Movie Time и другият изход за дохода трябва са да са извън while.
Те се изписват когато програмата приключва.

0
27/06/2019 19:03:57
genichka avatar genichka 8 Точки

Благодаря.Ще се опитам да го направя.

1
genichka avatar genichka 8 Точки

Колега, опитах се да направя задачата,но пак не се получава

Ето кода

https://pastebin.com/YAvtFrVN

изписва ми грешка

terminate called after throwing an instance of 'std::invalid_argument'
  what():  stoi

This application has requested the Runtime to terminate it in an unusual way.
Please contact the application's support team for more information.

Process returned 3 (0x3)   execution time : 28.872 s
Press any key to continue.

Как мога да я оправя?

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

0
RuNNeR4142 avatar RuNNeR4142 395 Точки

Трябва да отговори някой който разбира от C++. На мене ми идва много непознат и труден език, готови примери от интернет ми дават същата грешка чак се чудя какво става, пълна мистерия. Нямам представа как да прочетеш стринг и да го парснеш на инт.

0
genichka avatar genichka 8 Точки

Здравей Кольо, не мога да отворя линка.Може ли пак да ми го изпратиш?

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

0
genichka avatar genichka 8 Точки

Много ти благодаря.

0