Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

C++

Войти
Регистрация
Восстановить пароль
 
Krichovets
0 / 0 / 0
Регистрация: 27.09.2011
Сообщений: 5
#1

Требуется помощь!Робот-фермер.. - C++

27.09.2011, 12:08. Просмотров 693. Ответов 8
Метки нет (Все метки)

Доброго времени суток!Требуется помощь ,я только начинаю учить си ++,поэтому прошу проявить терпение в случае чего.

Значит задача такова:
Робот фермер различает размер апельсинов ( большие / маленькие), цвет апельсинов(orange- спелые, orange-green - полуспелые и green- зелёные).
Он срезает Н апельсины по следующему алгоритму:
1.Спелые апельсины ( orange) он делит на два ящика - большие в один,маленькие в другой.Требуется посчитать количество апельсинов
в каждом ящике отдельно и сколько в двух ящиках

2В случае если нет достаточное кол-во спелых он начнет срезать полуспелые (orange-green) и складывать в третий ящика а если и полуспелых нет то вывести сообщение что остались только зелёные и посчитать сколько в 3 ящике. Вот собственно как я думаю:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#include <cstdlib>
#include <iostream>
 
using namespace std;
 
int main(int argc, char *argv[])
{
    int n; // Требуемое кол-во спелых и полуспелых апельсинов
    int i ,box1,box2,box3;
    
    i = 0; // Счётчик
    box1 = 0; // Первый ящик со спелыми и большими апельсинами
    box2 = 0; // Второй ящик со спелыми и маленькими апельсинами
    box3 = 0; // Третий ящик с полуспелыми и любого размера апельсинами
    
    while (i <= N) // Выполнять цикл пока не достигнем нужного кол-ва апельсинов
    {
          if (Orange.Color = "Orange") /* Orange.Color - это тот класс который создал я,
                                          кстати с этим тоже большая проблема,никак не пойму 
                                          как его создать*/
          {
             if(Orange.Size = "Big") box1 = box1 + 1; 
             else box2 = box2 + 1;
          }
          else if (Orange.Color = "Orange-Green")
          {
             box3 = box3 + 1;
          }
          else
          {
              cout << "You have only green oranges!" << "\n";
          }
          
    }
    cout << "You have " << box1 << "oranges in box 1" << "\n";
    cout << "You have " << box2 << "oranges in box 2" << "\n";
    cout << "You have " << box1 << "oranges both in box 1 and box 2" << box1 + box2 << "\n";
    cout << "You have " << box1 << "oranges in box 3" << "\n";
    
    system("PAUSE");
    return EXIT_SUCCESS;
}
Но что то мне подсказывает что для консольной программы классы это перебор,так что надеюсь направите в нужном направлении (в хорошем смысле этого слова!).Спасибо
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.09.2011, 12:08
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Требуется помощь!Робот-фермер.. (C++):

Компьютерная графика на VS C++ MFC. Срочно требуется помощь! - C++
Привет всем. Я с 3 курса факультета информационных технологий НГУ. Хочу попросить помощи в решении задач по курсу комп. графики....

Торговый робот - Visual C++
Всем пирвет. Есть идея написать торгового робота. Только не знаю с чего начать. И вот есть несколько вопросов. На компе есть Microsoft...

Требуется помощь с програмкой - C++
Подскажите пожалуйста что мне изменить в этой программе: #include&lt;reg51.h&gt; #include&lt;lab8.h&gt; #include&lt;ssi.h&gt; #define...

Задание по Страуструпу. Требуется помощь - C++
Доброй ночи! на картиночке задание по Страуструпу. первую и третью часть я довел до рабочего состояния, но то как оно сделано вызвало...

Фермер приобрел трактор - C++
Фермер приобрел трактор, который стоит S тенге в кредит под r % годовых (сложных). Через 1 год 6 месяцев он уплатил сумму в размере S/2, а...

Вывод букв с помощью указателей (требуется помощь) - C++
Есть программа которая считывает слова из файла input.txt до тех пор пока они не закончатся. Я хочу в массив address помещать указатель на...

8
talis
791 / 543 / 37
Регистрация: 11.05.2010
Сообщений: 1,298
Записей в блоге: 1
27.09.2011, 13:13 #2
Krichovets, а откуда вводятся данные и в каком формате? И где код "класса, который создали вы"?

Добавлено через 7 минут
Цитата Сообщение от Krichovets Посмотреть сообщение
случае если нет достаточное кол-во спелых
Какое количество спелых считается достаточным?

Добавлено через 14 минут
То, как я это вижу:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
#include <iostream>
#include <ctime>
#include <cstdlib>
 
using namespace std;
 
const int oranges_count = 64; // количество апельсинов в саду
 
// виды апельсинов
enum EKind
{
    KIND_ORANGE_BIG = 0, // большие
    KIND_ORANGE_SMALL,   // маленькие
    KIND_HALF,           // недоспелые
    KIND_GREEN,          // зелёные
 
    KIND_END             // количество видов
}
oranges[ oranges_count ]; // это апельсиновый сад
 
int main( )
{
    srand( time(0) );
 
    // вырастить апельсины
    for( int i = 0; i < oranges_count; i++ )
        oranges[ i ] = EKind( rand() % KIND_END );
 
    int oranges_needed;
 
    cout << oranges_count << " oranges are grown. How many oranges do you want to collect?\n>";
    cin >> oranges_needed;
 
    int count[ 3 ] = { 0 }; // количество собранных апельсинов
 
    // собрать спелые апельсины
    for( int i = 0; i < oranges_count && oranges_needed; i++ )
    {
        if( oranges[ i ] < KIND_HALF )
        {
           count[ oranges[ i ] ]++;
           oranges_needed--;
        }
    }
 
    // если нужны ещё апельсины
    if( oranges_needed )
    {
        // собрать полуспелые
        for( int i = 0; i < oranges_count && oranges_needed; i++ )
        {
            if( oranges[ i ] == KIND_HALF )
            {
               count[ KIND_HALF ]++;
               oranges_needed--;
            }
        }
    }
 
    cout << "\nBig oranges:\t\t" << count[ KIND_ORANGE_BIG ] << "\nSmall oranges:\t\t" << count[ KIND_ORANGE_SMALL ]
         << "\nHalf-green:\t\t" << count[ KIND_HALF ]
         << "\n---------------------------\nTotal:\t\t\t" << count[ KIND_ORANGE_BIG ] + count[ KIND_ORANGE_SMALL ]
         << "\nTotal (w/ half-green):\t" << count[ KIND_ORANGE_BIG ] + count[ KIND_ORANGE_SMALL ]  + count[ KIND_HALF ]
         << '\n';
 
    return 0;
}
Здесь нет смысла создавать класс, достаточно перечисления. Кроме того, можно было бы у пользователя запрашивать количество апельсинов в саду, однако, до динамического выделения памяти вы вряд ли дошли.
0
Krichovets
0 / 0 / 0
Регистрация: 27.09.2011
Сообщений: 5
27.09.2011, 13:22  [ТС] #3
а откуда вводятся данные и в каком формате? И где код "класса, который создали вы"?

Добавлено через 7 минут

Про ввод данных ничего не сказано в условии,я привёл полный текст задания.

Какое количество спелых считается достаточным?

Добавлено через 14 минут

Достаточное количество спелых - это N
0
talis
791 / 543 / 37
Регистрация: 11.05.2010
Сообщений: 1,298
Записей в блоге: 1
27.09.2011, 13:24 #4
Цитата Сообщение от Krichovets Посмотреть сообщение
Достаточное количество спелых - это N

Не по теме:

-Профессор, я вот никак не могу представить сферу в девятимерном пространстве.
-Всё очень просто. Представьте сферу в N-мерном пространстве и сделайте N равным девяти.

0
Krichovets
0 / 0 / 0
Регистрация: 27.09.2011
Сообщений: 5
27.09.2011, 13:28  [ТС] #5
Понял,ступил, пусть будет 9))
0
talis
791 / 543 / 37
Регистрация: 11.05.2010
Сообщений: 1,298
Записей в блоге: 1
27.09.2011, 13:29 #6
Krichovets, посмотрите внимательно... Там код выложен выше.
1
Krichovets
0 / 0 / 0
Регистрация: 27.09.2011
Сообщений: 5
27.09.2011, 13:54  [ТС] #7
Talis, Вот тут чуть чуть не понял
C++
1
2
3
4
5
6
7
// если нужны ещё апельсины
    if( oranges_needed )
    {
        // собрать полуспелые
        for( int i = 0; i < oranges_count && oranges_needed; i++ )
        {
             ..................
, разве не должно быть как то так
C++
1
2
3
4
5
6
7
// если нужны ещё апельсины
    if( oranges_needed!=0)
    {
        // собрать полуспелые
        for( int i = 0; i < oranges_count && oranges_needed; i++ )
        {
          ..............
или я что то не допонял?
0
ForEveR
В астрале
Эксперт С++
7978 / 4737 / 321
Регистрация: 24.06.2010
Сообщений: 10,543
Завершенные тесты: 3
27.09.2011, 15:16 #8
Krichovets, Условия идентичны.
0
Krichovets
0 / 0 / 0
Регистрация: 27.09.2011
Сообщений: 5
27.09.2011, 15:36  [ТС] #9
Цитата Сообщение от ForEveR Посмотреть сообщение
Krichovets, Условия идентичны.
спасибо.запомню.

Добавлено через 2 минуты
Всем вам огромное человеческое спасибо,буду вникать
0
27.09.2011, 15:36
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.09.2011, 15:36
Привет! Вот еще темы с ответами:

Элементарные задачки на контрольную. Требуется помощь в решении - C++
Есть несколько несложных задач из контрольной работы по языку С первого курса, которые я не совсем знаю как делать. 1)Посчитать кол-во...

Требуется помощь... - Delphi
Доброго времени суток... Пишу работу в делфи связанную с валютами... столкнулся с проблемой, даже сразу двумя... добавил ComboBox с 10-ю...

Требуется помощь - Assembler
Здравствуйте. Уважаемые программисты, не могли бы вы объяснить новичку принцып работы ниже приведенной программы, буду очень признателен,...

Требуется помощь - Delphi
Здравствуйте,пересмотрел много форумов,но так и не нашел ответа вопрос1- как сделать так чтобы в компоненте openpicturedialog можно было...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru