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

Пояснитее как работает эта программа... - C++

Войти
Регистрация
Восстановить пароль
 
bastr
Сообщений: n/a
28.12.2009, 12:53     Пояснитее как работает эта программа... #1
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
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
#include <cstdlib>
#include "Class.h"
 
using namespace std;
 
int main(int argc, char *argv[])
{
   
    cout << "VVedite maximalnii razmer mnojectva" << endl;
    
    int max;
    cin >> max;
    
        Class value(max);
    
    while(true)
    {
               cout << "Vvedite Comandy" << endl;
               char* command;
               cin >> command;
               
               if(strcmp("exit", command) == 0)
                   return EXIT_SUCCESS;
               
               else if(strcmp("help", command) == 0)
               {
                     cout << "exit - Vihod" << endl;
                     cout << "help - Pomosh" << endl;
                     cout << "print - Nopechatat Mnojestvo" << endl;
                     cout << "add - Dobavit Chislo" << endl; 
                     cout << "has - Proverit Chislo" << endl << endl;
                     
                     cout << "operatorMult - operator *" << endl << endl;
                     cout << "operatorAdd - operator +" << endl << endl;
               }
               
               else if(strcmp("print", command) == 0)
               {
                    value.Print();
               }
               
               else if(strcmp("add", command) == 0)
               {
                    cout << "Vvedite Chislo" << endl;
                    
                    int chislo;
                    cin >> chislo;
                    value.Set(chislo);
               }
               
               else if(strcmp("add", command) == 0)
               {
                    cout << "Vvedite Chislo" << endl;
                    
                    int chislo;
                    cin >> chislo;
                    value.Set(chislo);
               }
               
               else if(strcmp("operatorMult", command) == 0)
               {
                    value = value * value;
               }
               
               else if(strcmp("operatorAdd", command) == 0)
               {
                    
                    value = value + value;
               }
               
               else if(strcmp("has", command) == 0)
               {
                    cout << "Vvedite Chislo" << endl;
                    
                    int chislo;
                    cin >> chislo;
                    bool has = value.Has(chislo);
                    
                    if(has == true)
                           cout << "Mogestvo Sodergit Chislo : " << chislo << endl;
                           else cout << "Mogestvo Ne Sodergit Chislo : " << chislo << endl;
               }
               else
               cout << "Oshibka Komandi" << endl;
    }
    
    system("PAUSE");
    return EXIT_SUCCESS;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
solar_wind
 Аватар для solar_wind
741 / 732 / 39
Регистрация: 06.07.2009
Сообщений: 2,940
Завершенные тесты: 1
28.12.2009, 13:12     Пояснитее как работает эта программа... #2
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
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
#include <cstdlib>
#include "Class.h"
 
using namespace std;
 
int main(int argc, char *argv[])
{
   //Выводит на экран строку
    cout << "VVedite maximalnii razmer mnojectva" << endl;
    
    int max;
//Считывает с клавиатуры целое число
    cin >> max;
    
//Созлает переменную типа Class и передает в конструктор целое число
        Class value(max);
    //Бесконечный цикл
    while(true)
    {
//Выводит на экран строку и читает с клавиатуры строку (Здесь косяк, память под строку не выделена)
               cout << "Vvedite Comandy" << endl;
               char* command;
               cin >> command;
          //Если строка равна exit выходим из программы    
               if(strcmp("exit", command) == 0)
                   return EXIT_SUCCESS;
               //Если строка равна help выводим текстовые строки, типа меню
               else if(strcmp("help", command) == 0)
               {
                     cout << "exit - Vihod" << endl;
                     cout << "help - Pomosh" << endl;
                     cout << "print - Nopechatat Mnojestvo" << endl;
                     cout << "add - Dobavit Chislo" << endl; 
                     cout << "has - Proverit Chislo" << endl << endl;
                     
                     cout << "operatorMult - operator *" << endl << endl;
                     cout << "operatorAdd - operator +" << endl << endl;
               }
               //Если строка равна print вызываем функцию Print  класса Class
               else if(strcmp("print", command) == 0)
               {
                    value.Print();
               }
                //Если строка равна add вызываем функцию Set класса Class
               else if(strcmp("add", command) == 0)
               {
                    cout << "Vvedite Chislo" << endl;
                    
                    int chislo;
                    cin >> chislo;
                    value.Set(chislo);
               }
                  //До этого условия программа вообще никогда не дойдет
               else if(strcmp("add", command) == 0)
               {
                    cout << "Vvedite Chislo" << endl;
                    
                    int chislo;
                    cin >> chislo;
                    value.Set(chislo);
               }
                  //Если строка равна operatorMult объект класса Class умножается на себя
               else if(strcmp("operatorMult", command) == 0)
               {
                    value = value * value;
               }
               //Ну и далее все в таком духе....
               else if(strcmp("operatorAdd", command) == 0)
               {
                    
                    value = value + value;
               }
               
               else if(strcmp("has", command) == 0)
               {
                    cout << "Vvedite Chislo" << endl;
                    
                    int chislo;
                    cin >> chislo;
                    bool has = value.Has(chislo);
                    
                    if(has == true)
                           cout << "Mogestvo Sodergit Chislo : " << chislo << endl;
                           else cout << "Mogestvo Ne Sodergit Chislo : " << chislo << endl;
               }
               else
               cout << "Oshibka Komandi" << endl;
    }
    
    system("PAUSE");
    return EXIT_SUCCESS;
}
А что конкретно не понятно то?
vet
 Аватар для vet
175 / 175 / 13
Регистрация: 08.04.2009
Сообщений: 1,309
28.12.2009, 13:31     Пояснитее как работает эта программа... #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 else if(strcmp("add", command) == 0)
               {
                    cout << "Vvedite Chislo" << endl;
                    
                    int chislo;
                    cin >> chislo;
                    value.Set(chislo);
               }
                  //До этого условия программа вообще никогда не дойдет
               else if(strcmp("add", command) == 0)
               {
                    cout << "Vvedite Chislo" << endl;
                    
                    int chislo;
                    cin >> chislo;
                    value.Set(chislo);
               }
Эт же поидее ваще одно и тоже и 2-е походу можно вообще удалить
solar_wind
 Аватар для solar_wind
741 / 732 / 39
Регистрация: 06.07.2009
Сообщений: 2,940
Завершенные тесты: 1
28.12.2009, 13:37     Пояснитее как работает эта программа... #4
vet, Ага, может опечатка, или там должно было быть что то другое.
patriot2008
 Аватар для patriot2008
70 / 70 / 4
Регистрация: 04.12.2008
Сообщений: 463
28.12.2009, 13:41     Пояснитее как работает эта программа... #5
я бы использовал оператор switch вместо if...else. Тогда бы код стал бы понятней...
Card1nal
6 / 6 / 0
Регистрация: 04.01.2010
Сообщений: 118
04.01.2010, 18:38     Пояснитее как работает эта программа... #6
Цитата Сообщение от patriot2008 Посмотреть сообщение
я бы использовал оператор switch вместо if...else. Тогда бы код стал бы понятней...
ага, а давай еще вместо while использовать if ... goto
patriot2008
 Аватар для patriot2008
70 / 70 / 4
Регистрация: 04.12.2008
Сообщений: 463
04.01.2010, 19:59     Пояснитее как работает эта программа... #7
Цитата Сообщение от Card1nal Посмотреть сообщение
ага, а давай еще вместо while использовать if ... goto
Это шутка или упрек?
Здесь действительно лучше использовать switch, ИМХО

Добавлено через 59 минут
C++
1
2
3
4
5
6
7
8
9
10
cout << "Vvedite Comandy" << endl;
char* command;
cin >> command;
switch(command)
{
       case "exit":
               return EXIT_SUCCESS;
       case "help":
//и так далее... 
}
Думаю, при такой реализации будет понятней разбираться...
zim22
depict1
 Аватар для zim22
276 / 141 / 2
Регистрация: 11.07.2009
Сообщений: 606
04.01.2010, 20:03     Пояснитее как работает эта программа... #8
Цитата Сообщение от patriot2008 Посмотреть сообщение
Думаю, при такой реализации будет понятней разбираться...
ты хоть сам пробовал свой "чудо"-код откомпилировать?
char* command;
cin >> command;
case "exit":
без комментариев
patriot2008
 Аватар для patriot2008
70 / 70 / 4
Регистрация: 04.12.2008
Сообщений: 463
04.01.2010, 21:43     Пояснитее как работает эта программа... #9
zim22,
Card1nal, приношу свои глубочайшие извинения... Ступил немного, теперь все понял (там же указатель... )
Еще раз сорри...
zim22
depict1
 Аватар для zim22
276 / 141 / 2
Регистрация: 11.07.2009
Сообщений: 606
04.01.2010, 22:23     Пояснитее как работает эта программа... #10
Цитата Сообщение от patriot2008 Посмотреть сообщение
(там же указатель..
и не только. в качестве меток case не могут выступать С-string'и
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.01.2010, 22:37     Пояснитее как работает эта программа...
Еще ссылки по теме:

C++ У кого нибудь работает эта программа? просто запустите
Объясните как работает эта программа C++
C++ Как работает эта функция?
C++ Поясните что и как делает эта программа!
Как работает эта штука, и как сделать нечто подобное ? C++

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

Или воспользуйтесь поиском по форуму:
patriot2008
 Аватар для patriot2008
70 / 70 / 4
Регистрация: 04.12.2008
Сообщений: 463
04.01.2010, 22:37     Пояснитее как работает эта программа... #11
Я понял, спасибо. ))
Yandex
Объявления
04.01.2010, 22:37     Пояснитее как работает эта программа...
Ответ Создать тему
Опции темы

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