Премини към съдържанието
  • Добре дошли!

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

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

     

Помощ за една задачка до тази вечер


Препоръчан отговор

Здравейте !

Студент съм в ТУ-Варна първа година (специалност СИТ) и като цяло имам чувството, че живея в един ежедневен кошмар. Уж те учат да програмираш ама като питаш за помощ те пренебрегват и не обясняват. Основно се занимават само с тези които знаят и могат и на такива като мен които хал хабер си нямат от С++ изобщо не се обръща внимание :'). 

И сега по същество. Имам да направя едно домашно, което знам че е елементарно но няма как да го направя като не ми е обяснено... Въртях, суках, рових в нета и какво ли още не, но... не измъдрих нищо. Ако някой тук може да удари едно рамо и да пробва да напише нещо дори да не е целия код или знае къде е решението някъде в нета ще съм МНОГО благодарен. Ето и задачата:

 

This exercise should familiarise you with functions and parameters. You will have to design and implement a program that helps a printer in making quotes for their products. There are many ways to write this program, but it is essential that you use functions and that you do not use any global variables (you will not even need local variables)

PART 1 (worth 50%): A printer has the following pricing system for books. For black and white printing, each sheet of paper costs a penny. In addition, they have to make a plate for each page of the original, costing 7 pounds. For colour printing, each sheet of paper costs 4 pennies, and the plates are 28 pounds. Binding costs 2 pound per copy of the book. These prices exclude 17.5% VAT (VAT has not yet risen on this bookbinder's planet). The printing is double sided.

As an example, printing 400 black and white books with 100 pages each costs:

100*7 pounds £ 700.00 for the plates.

(100/2)*400*1 pennies £ 200.00 for the paper. (2 pages per sheet)

400*2 pounds £ 800.00 for the binding.

Subtotal £ 1700.00

VAT £ 297.50 17.5% over 1700 pounds

Grand Total £ 1997.50

1. Write a function that calculates the price of a job given the number of pages, price per sheet, price per plate, and number of copies.

2. Write a function that calculates the price of a job given the number of pages and the number of copies for black and white printing. This function should call the function that you wrote for part 1.

3. Write a function that calculates the price of a job given the number of pages and the number of copies for colour printing. This function should call the function that you wrote for part 1.

4. Write a main program that calculates the total price of printing 1000 colour books with 32 pages, 2000 black/white books with 40 pages and 400 black/white books with 160 pages. The main function should call the functions that you wrote for parts 2 and 3.

PART 2 (worth 50%):

1. Change the function that calculates the price of a job so that it assumes that books are printed with 16-fold signatures. (ie, the number of sheets is rounded up to the nearest multiple of 16).

Change the main function so that it prints in addition to the previous number:

• The price of printing 50 colour books of 30 pages each with 16-fold signatures.

• The price of printing 35 black and white books of 34 pages each with 16-fold signatures.

Please note: You don't need to change the parameters of your functions for this part. Each printed page (including partially printed pages) will need a plate, but blank pages won't. You may print out the first answer using a 16 fold signature as well for this part. Three numbers should therefore be printed for this extension. You may wish to find out how to obtain remainders in C using the modulus operator %, for example a % b in C will give the integer remainder when a is divided by b. You may also want to look at 'typecasting' - forcing conversion from one type into another type - because it is a common technique used for rounding in C. For example, typecasting a non-whole number as an integer will round it down to the nearest integer, e.g. (int) 3.14159 will evaluate to exactly 3.

 

2. Change the functions so that the number of pages in a signature is passed as a parameter. (ie, the number of sheets is rounded up to the nearest multiple of n, where n is the size of the signature)

Change the main function so that it prints in addition to the previous three numbers:

• The price of printing 35 black and white books of 34 pages each with 8 fold signatures.

• The price of printing 100 black and white books of 34 pages each with 6 fold signatures.

 

Please note: For this extension you must print 5 numbers (the original [under a 16 fold signature], two for the first extension, two for this second extension).

Линк към коментара
Сподели в други сайтове

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

Цитат

Основно се занимават само с тези които знаят и могат и на такива като мен които хал хабер си нямат от С++ изобщо не се обръща внимание :'). 

В природата се нарича естествен подбор, "natural selection" - даскалите няма смисъл да си губят времето с тея дето и без това ще отпаднат, по-добре да научат тея  които могат да програмират да го правят по-добре.

Линк към коментара
Сподели в други сайтове

И какъв е смисъла да го "учиш" това, след като хал-хабер си нямаш? Какъв софтуерен инженер ще станеш, като в първи курс не можеш да се решиш задачите?

Линк към коментара
Сподели в други сайтове

преди 3 минути, ined написа:

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

В природата се нарича естествен подбор, "natural selection" - даскалите няма смисъл да си губят времето с тея дето и без това ще отпаднат, по-добре да научат тея  които могат да програмират да го правят по-добре.

Целта на "даскала" е да те научи на нещо. Неговата цел е да научи всички, повтарям ВСИЧКИ да програмират поне на базово ниво. Няма никакво право да дели ученици и студенти. А за reference щом казваш, че не ставам и въпреки, че съм self-taught на Java програмата я написах за около 30 минути в IntelliJ :). Отделно с това започнах няколко седмици по-късно в университета поради редица причини... Просто не съм програмирал толкова на С++ и нямам нужните знания все още. Това беше и идеята на поста - да ми налее малко акъл, а не да коментират хейтъри...

преди 5 минути, halek написа:

И какъв е смисъла да го "учиш" това, след като хал-хабер си нямаш? Какъв софтуерен инженер ще станеш, като в първи курс не можеш да се решиш задачите?

Ето го и поредния... Хора, като нямате какво да кажете - просто не казвайте нищо

Линк към коментара
Сподели в други сайтове

преди 5 минути, Nikola Buchukov написа:

Ето го и поредния... Хора, като нямате какво да кажете - просто не казвайте нищо

Ами пропускай ги тези отговори и чакай някой да ти реши задачата и да я препишеш 🙄

Линк към коментара
Сподели в други сайтове

преди 1 минута, halek написа:

Ами пропускай ги тези отговори и чакай някой да ти реши задачата и да я препишеш 🙄

Дори няма да си правя труда да ти отговарям като дори не си вникнал в темата на поста

Линк към коментара
Сподели в други сайтове

Цитат

Целта на "даскала" е да те научи на нещо. Неговата цел е да научи всички, повтарям ВСИЧКИ да програмират поне на базово ниво. Няма никакво право да дели ученици и студенти. А за reference щом казваш, че не ставам и въпреки, че съм self-taught на Java програмата я написах за около 30 минути в IntelliJ :). Отделно с това започнах няколко седмици по-късно в университета поради редица причини... Просто не съм програмирал толкова на С++ и нямам нужните знания все още. Това беше и идеята на поста - да ми налее малко акъл, а не да коментират хейтъри...

Напротив, в цял свят главната цел да се отсеят можещите от не можещите, явно и в България са започнали най-после да прилагат западния модел на обучение.

Линк към коментара
Сподели в други сайтове

преди 2 часа, Nikola Buchukov написа:

Здравейте !

Студент съм в ТУ-Варна първа година (специалност СИТ) и като цяло имам чувството, че живея в един ежедневен кошмар. Уж те учат да програмираш ама като питаш за помощ те пренебрегват и не обясняват. Основно се занимават само с тези които знаят и могат и на такива като мен които хал хабер си нямат от С++ изобщо не се обръща внимание :'). 

И сега по същество. Имам да направя едно домашно, което знам че е елементарно но няма как да го направя като не ми е обяснено... Въртях, суках, рових в нета и какво ли още не, но... не измъдрих нищо. Ако някой тук може да удари едно рамо и да пробва да напише нещо дори да не е целия код или знае къде е решението някъде в нета ще съм МНОГО благодарен. Ето и задачата:

 

This exercise should familiarise you with functions and parameters. You will have to design and implement a program that helps a printer in making quotes for their products. There are many ways to write this program, but it is essential that you use functions and that you do not use any global variables (you will not even need local variables)

PART 1 (worth 50%): A printer has the following pricing system for books. For black and white printing, each sheet of paper costs a penny. In addition, they have to make a plate for each page of the original, costing 7 pounds. For colour printing, each sheet of paper costs 4 pennies, and the plates are 28 pounds. Binding costs 2 pound per copy of the book. These prices exclude 17.5% VAT (VAT has not yet risen on this bookbinder's planet). The printing is double sided.

As an example, printing 400 black and white books with 100 pages each costs:

100*7 pounds £ 700.00 for the plates.

(100/2)*400*1 pennies £ 200.00 for the paper. (2 pages per sheet)

400*2 pounds £ 800.00 for the binding.

Subtotal £ 1700.00

VAT £ 297.50 17.5% over 1700 pounds

Grand Total £ 1997.50

1. Write a function that calculates the price of a job given the number of pages, price per sheet, price per plate, and number of copies.

2. Write a function that calculates the price of a job given the number of pages and the number of copies for black and white printing. This function should call the function that you wrote for part 1.

3. Write a function that calculates the price of a job given the number of pages and the number of copies for colour printing. This function should call the function that you wrote for part 1.

4. Write a main program that calculates the total price of printing 1000 colour books with 32 pages, 2000 black/white books with 40 pages and 400 black/white books with 160 pages. The main function should call the functions that you wrote for parts 2 and 3.

PART 2 (worth 50%):

1. Change the function that calculates the price of a job so that it assumes that books are printed with 16-fold signatures. (ie, the number of sheets is rounded up to the nearest multiple of 16).

Change the main function so that it prints in addition to the previous number:

• The price of printing 50 colour books of 30 pages each with 16-fold signatures.

• The price of printing 35 black and white books of 34 pages each with 16-fold signatures.

Please note: You don't need to change the parameters of your functions for this part. Each printed page (including partially printed pages) will need a plate, but blank pages won't. You may print out the first answer using a 16 fold signature as well for this part. Three numbers should therefore be printed for this extension. You may wish to find out how to obtain remainders in C using the modulus operator %, for example a % b in C will give the integer remainder when a is divided by b. You may also want to look at 'typecasting' - forcing conversion from one type into another type - because it is a common technique used for rounding in C. For example, typecasting a non-whole number as an integer will round it down to the nearest integer, e.g. (int) 3.14159 will evaluate to exactly 3.

 

2. Change the functions so that the number of pages in a signature is passed as a parameter. (ie, the number of sheets is rounded up to the nearest multiple of n, where n is the size of the signature)

Change the main function so that it prints in addition to the previous three numbers:

• The price of printing 35 black and white books of 34 pages each with 8 fold signatures.

• The price of printing 100 black and white books of 34 pages each with 6 fold signatures.

 

Please note: For this extension you must print 5 numbers (the original [under a 16 fold signature], two for the first extension, two for this second extension).

Част 1

Имаш 3 функции

http://learn.dev.bg/c-функции/

, които трябва да изчисляват цената по зададен брой на страниците, цената на страница,  броя на копията. Другото не го разбрах.

Втората вика първата функция. Сиреч рекурсия. Сигурно. Вика сама себе си. Или просто вика името на функция 1.

https://sites.google.com/site/moodlefmi123/uroci/rekursia

Изчислява цената по зададени брой на страници и брой на копия за черно и бяло принтиране. 

Третата функция смята цената за цветното принтиране и тази фунция вика първата.

4 точка е главна програма, която смята цената на 1000 цветни книжки с 32 страници, 2000 черни бели книжки с 40 страници и 400 черно бели книжки с 160 страници. Тя вика функциите 2 и 3.

 

Линк към коментара
Сподели в други сайтове

преди 6 часа, Nikola Buchukov написа:

съм self-taught на Java програмата

Цитат

Разбира се, познаването на друг програмен език или други компютърни познания ще спомогнат за по-доб­рото разбиране на това ръководство, въпреки че това не е от решаващо значение.

от тук

Идеята е: напиши програмата на Java и после я преведи на C++.

Успех!

п.п. Знаейки друг програмен език първо се написва програмата на него, а после лесно става с превода.   

Линк към коментара
Сподели в други сайтове

Добавете отговор

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

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

×   Вмъкнахте текст, който съдържа форматиране.   Премахни форматирането на текста

  Разрешени са само 75 емотикони.

×   Съдържанието от линка беше вградено автоматично.   Премахни съдържанието и покажи само линк

×   Съдържанието, което сте написали преди беше възстановено..   Изтрий всичко

×   You cannot paste images directly. Upload or insert images from URL.

 Сподели

×
×
  • Добави ново...