Премини към съдържанието

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


Да се напише програма, която да
пресмята по колко ученици от три класа, получили съответно общи първа, втора и трета награда за участие в състезание по програмиране могат да отидат на екскурзия. Размерът на всяка обща награда и цената на
екскурзията за един ученик (в лева и стотинки) са известни и се въвеждат от клавиатурата .

Сподели този отговор


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

Това е много интересна класическа задача, която може да се реши поне по три различни начина. Условието може да бъде обобщено по следния начин: "Да се напише система, която пише програми по задание, формулирано на български език". И така:

Първо решение - IT вариант: Сядаш и научаваш някой от езиците Prolog, LISP или Smalltalk. Пишеш на него експертна система, която разпознава думите в българския език, разбира смисъла им и може да генерира програмен код на езика C/C++. Диктуваш и условието и получаваш отговора.

Второ решение - бизнес вариант: Известно е как програмистите в различни стадии на кариерата си пишат програма, която да отпечата "Hello, world!".

Начинаещ:

10 PRINT "HELLO WORLD"
20 END

Ученик:

Program Hello(input, output)
begin
  Writeln('Hello World');
end.

Студент:

#include <stdio.h>
void main(void) {
  char *message[] = {"Hello ", "World"};
  int i;
  for(i=0; i<2; i++)
    printf("%s", message[i]);
  printf("\n");
}

Професионален програмист:

int main() {
  string str;
  str = "Hello World";
  cout << str;
  return(0);
}

Собственик на софтуерна компания:

Пешо! Напиши програма, която извежда "Hello, world!"!

Та така... Започваш работа като програмист. Трупаш опит и стаж. Създаваш собствена софтуерна компания. И използваш последния вариант от примера.

Трето решение - вариант е еротичен привкус: Слагаш розова поличка и отиваш пред тоалетната на Централна гара. Доколкото зная, тарифата е "5 лева на свирка". За написване на такава задача програмистите вземат около 50 лева. За една вечер заработваш нужната сума, плащаш и получаваш решението.

Ако никой от изброените варианти не те устройва, имаш още две възможности. Или си сядаш на задника, научаваш си уроците и си решаваш сам домашното, или зарязваш ученето и отиваш да пасеш овце на село ;) 

  • Харесва ми 1

Сподели този отговор


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

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

  • Харесва ми 1

Сподели този отговор


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

Ще помогнете ли??

 


Сподели този отговор


Линк към този отговор
Сподели в други сайтове
преди 8 часа, tarantula77 написа:

Ще помогнете ли??

Ще помогнем. Но няма да ти вършим работата. Първо ти ще си седнеш на мързеливото дупенце и ще напишеш програмата. После ще се опиташ да я компилираш. Ще ти даде грешки. Ще попиташ чичко google за грешките и сам ще си ги оправиш. После ще успееш да компилираш и стартираш програмата. Тя ще ти даде Runtime error или ще извежда неправилни резултати. Ще я публикуваш тук и ще попиташ къде си допуснал грешка. Тогава вече ние ще помогнем да си намериш грешките, ще ти обясним в какво се състоят и ти ще научиш нещо ново и полезно. Каквато всъщност е целта на цялото мероприятие.

Редактирано от Win_user (преглед на промените)

Сподели този отговор


Линк към този отговор
Сподели в други сайтове
преди 2 часа, tarantula77 написа:

Ами аз се опитах и не стана за това търся помощ !

Ами добре. Покажи до къде си стигнал с опитите.

Сподели този отговор


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

Не разбирам условието на програмата и нивото, на която трябва да се напише.
Я дай пак? Тия класове, тия ученици не ми стана ясно.
С масиви, структури, вектори или класове трябва да обособите списъка с ученици?

Сподели този отговор


Линк към този отговор
Сподели в други сайтове
на 7.10.2017 в 18:40, tarantula77 написа:

Да се напише програма, която да
пресмята по колко ученици от три класа, получили съответно общи първа, втора и трета награда за участие в състезание по програмиране могат да отидат на екскурзия. Размерът на всяка обща награда и цената на
екскурзията за един ученик (в лева и стотинки) са известни и се въвеждат от клавиатурата .

Да знаеш, в ТУ-то ако си, това ще искат на контролните да го пишеш на лист, не това точно, но подобно. Да знаеш. 

По-добре научи малко, иначе няма и за 3. Цялото е 3-4 страници кариран лист.

Редактирано от Julius Decimus (преглед на промените)

Сподели този отговор


Линк към този отговор
Сподели в други сайтове
на 10/9/2017 в 19:47, simtech написа:

Не разбирам условието на програмата и нивото, на която трябва да се напише.
Я дай пак? Тия класове, тия ученици не ми стана ясно.
С масиви, структури, вектори или класове трябва да обособите списъка с ученици?

Съгласен, условието на самата задача е странно. Наградата, доколкото разбирам, за всеки клас е в пари. Предполагам за всеки клас има по 1 награда. Според това какви пари са получили и колко ученика са, трябва да се изчисли, колко от тях ще могат да отидат на екскурзията.
Например:
Първият клас, който е на първо място взема 20 000 лева награда. Екскурзията струва по 2 бона на ученик. Та съответно, ако са били 20 ученика ще могат да отидат само 50% от тях, т.е 10 човека. (20000/2000 = 10)

Така и за останалите класове. Поне аз така разбирам условието, дали е така.... Един бог знае!

П.П: Тоест най-простият вариант според мен е следният:
1 минутка работа. Не съм слагал if оператори да проверям за грешки и т.н.. Ако въведеш всичко, като хората няма да имаш проблеми. :)

#include <iostream>

using namespace std;

int main()
{
    unsigned int price;
    unsigned int firstAward;
    unsigned int secondAward;
    unsigned int thirdAward;
    cout << "Type the price of the excursion:"; cin >> price; cout << endl;
    cout << "Type the award for the first place:"; cin >> firstAward; cout << endl;
    cout << "Type the award for the second place:"; cin >> secondAward; cout << endl;
    cout << "Type the award for the third place:"; cin >> thirdAward; cout << endl;
    cout << "From the first class only " << firstAward/price << " students can go on the excursion." << endl;
    cout << "From the second class only " << secondAward/price << " students can go on the excursion." << endl;
    cout << "From the third class only " << thirdAward/price << " students can go on the excursion." << endl;
    return 0;
}

Едит: Не видях, че става въпрос и за стотинки, тогава нещата са малко по различни...

Редактирано от Second to none (преглед на промените)

Сподели този отговор


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

Регистрирайте се или влезете в профила си за да коментирате

Трябва да имате регистрация за да може да коментирате това

Регистрирайте се

Създайте нова регистрация в нашия форум. Лесно е!

Нова регистрация

Вход

Имате регистрация? Влезте от тук.

Вход


×

Информация

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