Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 5.00/10: Рейтинг темы: голосов - 10, средняя оценка - 5.00
svk2140
88 / 0 / 3
Регистрация: 04.07.2013
Сообщений: 282
#1

оооочень странно не выполняется условие

05.07.2013, 19:59. Просмотров 1889. Ответов 38
Метки нет (Все метки)

C++
1
2
3
4
5
6
7
    bool c = true;
    if(c == true)
    {
        cout << "w" << endl;
        loading();
        c = false;
    }
этот код должен выполнятся вроде бы 1 раз, но он выполняется постоянно.

вот код программы (код который вверху в начале main)

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
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
#include <iostream>
#include <fstream>
#include <stdlib.h>
using namespace std;
 
bool petla = true;
int main();
 
int w = 0;
int age2[] = {17,24};
int *age = new int;
string nema2[] = {"roma","dima"}; 
string name[] = {"roma","dima"};
 
//***************************************************************************************
 
void loading()
{
    fstream file2;
    file2.open ("c:\\baza_save_age.txt");
    for(int i = 0; i < 2;i++)
    {
        file2 >> age[i];
    }
    file2.close();
        
    cout << "loading baza age" << endl << endl;
 
    system("del c:\\baza_save_age.txt");
    system("@echo off > c:\\baza_save_age.txt");
    
    for(int i = 0;i < 2;i++)
    {
        cout << age[i] << " ";
    }
}
 
//***************************************************************************************
    
void baza()
{
        do
        {
            
            cout << "vvedite id: ";
            int id;
            cin >> id;
            
            if(id > 0 && id < 3)
            {
                cout << endl << "age: " << age[id-1] << endl << "name: " << name[id-1] << endl;
            }
            
            if(id < 1 || id > 2)
            {
                cout << "error" << endl;
            }
            do
            {
                cout << endl << "hotite prodolzit?: ";
                string vopros;
                cin >> vopros;
                
                if(vopros == "net")
                {
                    cout << endl;
                    main();
                }
                if(vopros != "da" && petla != false)
                {
                    cout << endl << "error(!=(da,net))" << endl;
                }
                if(vopros == "da")
                {
                    cout << endl;
                    baza();
                }
            }
            while(petla);
        }
        while(petla);
}
 
//********************************************************************************
 
void function()
{
            cout << "dopolnitelnie funkchii" << endl
            << "1 - naiti samogo starshego" << endl
            << "2 - naiti srednij vozrast" << endl
            << "3 - redaktor" << endl << endl
            << "vvedite punct: ";
            
            int punct;
            cin >> punct;
            
            if(punct < 1 || punct > 3)
            {
                cout << "error" << endl;
            }
            
            if(punct == 1)
            {
                int a = 0;
                int b = 0;
                for(int i = 0 ; i < 2 ; i++)
                {
                    if(a < age[i])
                    {
                        a = age[i];
                        b = i;
                    }
                }
                cout << endl << "age: " << age[b] << endl << "name: " << name[b] << endl << endl;
                main();
            }
            if(punct == 2)
            {
                    int resultat = 0;
                    for(int i = 0 ; i < 2 ; i++)
                    {
                        resultat += age[i];
                    }
                    resultat /= 2;
                    cout << endl << "srednij vozrast: "<< resultat << endl << endl;
                    main();
            }
}
 
//********************************************************************************
 
int main()
{
    bool c = true;
    if(c == true)
    {
        cout << "w" << endl;
        loading();
        c = false;
    }
    do
    {   
        cout << endl << endl;
        {
            cout << "punct list" << endl
            << "1 - baza dannix" << endl
            << "2 - dopolnitelnie funkchii" << endl
            << "3 - save end exit" << endl << endl
            << "vvedite punct: ";
            
            int punct;
            cin >> punct;
            
            cout << endl;
            
            if(punct < 1 || punct > 3)
            {
                cout << "error" << endl << endl;
            }
            if(punct == 2)
            {
                function();
            }   
            if(punct == 1)
            {
                baza();
            }
            if(punct == 3)
            {           
                fstream file1;
                file1.open ("c:\\baza_save_age.txt");
                for(int i = 0;i < 2;i++)
                {
                    file1 << age2[i] << " "; 
                }
                file1.close();
                
                petla = false;
                return false;
            }
        }
    }
    while(petla);
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.07.2013, 19:59
Ответы с готовыми решениями:

Не выполняется условие!
Здравствуйте! подскажите пожалуйста по какой причине у меня может не...

Не выполняется условие
Код как таковой работает но единственное что не выводит так это ответ при...

Не выполняется условие
При вводе единицы должно вывестись сообщение на экран, однако этого не...

Не выполняется условие
#include &lt;std_lib_facilities.h&gt; using namespace std; int main() { ...

Не выполняется условие
Условие задачи: На вход программе подаются сведения о сдаче экзаменов...

38
120°
12 / 10 / 0
Регистрация: 01.07.2013
Сообщений: 62
05.07.2013, 20:04 #2
почему у вас одни циклы do{} while(); вложены в другие?
сами себя запутаете ими
0
svk2140
88 / 0 / 3
Регистрация: 04.07.2013
Сообщений: 282
05.07.2013, 20:07  [ТС] #3
у меня вопрос можно ли както этот вопрос удалить? потому что я нашол ответ.
0
Tiva
94 / 94 / 21
Регистрация: 25.04.2012
Сообщений: 429
05.07.2013, 20:08 #4
а зачем у вас в мейне вооообще эти строки?
если их стереть, и оставить просто cout и вызов функции, действие программы изменится чуть более, чем никак
0
svk2140
88 / 0 / 3
Регистрация: 04.07.2013
Сообщений: 282
05.07.2013, 20:09  [ТС] #5
Цитата Сообщение от 120° Посмотреть сообщение
почему у вас одни циклы do{} while(); вложены в другие?
сами себя запутаете ими
да затем, если вы к примеру ответите da на вопрос который в базе выполнялся внешний цикл, и снова запрашивало id, а если ответите ни da ни net выполнялся внутренний цикл, и снова запрашивало вопрос.
0
svk2140
88 / 0 / 3
Регистрация: 04.07.2013
Сообщений: 282
05.07.2013, 20:10  [ТС] #6
Цитата Сообщение от Tiva Посмотреть сообщение
а зачем у вас в мейне вооообще эти строки?
если их стереть, и оставить просто cout и вызов функции, действие программы изменится чуть более, чем никак
это долго объяснять, но если ктото это добавил - значит оно нужно)
0
Tiva
94 / 94 / 21
Регистрация: 25.04.2012
Сообщений: 429
05.07.2013, 20:12 #7
Цитата Сообщение от svk2140 Посмотреть сообщение
это долго объяснять, но если ктото это добавил - значит оно нужно)
если приведен не полный код, и там в цикле есть что-то еще, то возможно это и нужно. если это полный код программы, и туда ничего не будет добавлено - это абсолютно не нужные строки
0
svk2140
88 / 0 / 3
Регистрация: 04.07.2013
Сообщений: 282
05.07.2013, 20:12  [ТС] #8
Цитата Сообщение от 120° Посмотреть сообщение
добавьте еще несколько label-ов.и сам черт ноги поломает
мне так легче - так как нечего не сливается, и тому кто писал программу тое-сть мне, будет легче так как он знает где что находится. да и вроде тут нечего сложного нету)
0
svk2140
88 / 0 / 3
Регистрация: 04.07.2013
Сообщений: 282
05.07.2013, 20:15  [ТС] #9
Цитата Сообщение от Tiva Посмотреть сообщение
если приведен не полный код, и там в цикле есть что-то еще, то возможно это и нужно. если это полный код программы, и туда ничего не будет добавлено - это абсолютно не нужные строки
понимаешь я веду видио уроки и постоянно в эту прогу вкладываю новый материал. ДА я сам изучаю с++, но в этом весь и +, потому что если припадёт ученик другому ученику будет всё более чем понятно. да и сам преподающий ученик будет всё практиковать)
0
Tiva
94 / 94 / 21
Регистрация: 25.04.2012
Сообщений: 429
05.07.2013, 20:18 #10
C++
1
2
3
4
5
6
7
  bool c = true; //присваиваем переменной некоторое значение
    if(c == true) //проверяем, то ли присвоил компилятор этой переменной, что мы написали, или сделал что-то своё?
    {
        cout << "w" << endl; // пользовательские действия
        loading(); // пользовательские действия
        c = false; //меняем значение переменной, чтоб если компилятор перепутает кодовое слово if на кодовое слово while, не произошел бесконечный цикл
    }
ты не доверяешь своему компилятору?
и всё-таки это абсолютно лишние строки
0
svk2140
88 / 0 / 3
Регистрация: 04.07.2013
Сообщений: 282
05.07.2013, 20:27  [ТС] #11
Цитата Сообщение от 120° Посмотреть сообщение

Не по теме:


не знаю, не знаю. вот так смотришь на программу и ничего не понятно. один цикл, в нем еще один =-O
ужас какой-то

тут сначала понять надо, зачем 1 вложен под другой! я тебе уже говорил перед этим сообщением

Добавлено через 24 секунды
Цитата Сообщение от nexen Посмотреть сообщение

Не по теме:

svk2140, эх, кто бы вам русский язык преподал бы..

тут же не форум по русскому языку)
0
metagalaxy
7 / 7 / 2
Регистрация: 18.02.2012
Сообщений: 61
05.07.2013, 20:27 #12
Цитата Сообщение от svk2140 Посмотреть сообщение
bool c = true;
* * if(c == true)
* * {
* * * * cout << "w" << endl;
* * * * loading();
* * * * c = false;
* * }
Так переменная постоянно true с чего циклу прекращаться?)) Ты инициализировал с, как истину и в проверочном условии зачем-то сравниваешь 2 константные истины получается.
0
svk2140
88 / 0 / 3
Регистрация: 04.07.2013
Сообщений: 282
05.07.2013, 20:29  [ТС] #13
Цитата Сообщение от Tiva Посмотреть сообщение
C++
1
2
3
4
5
6
7
  bool c = true; //присваиваем переменной некоторое значение
    if(c == true) //проверяем, то ли присвоил компилятор этой переменной, что мы написали, или сделал что-то своё?
    {
        cout << "w" << endl; // пользовательские действия
        loading(); // пользовательские действия
        c = false; //меняем значение переменной, чтоб если компилятор перепутает кодовое слово if на кодовое слово while, не произошел бесконечный цикл
    }
ты не доверяешь своему компилятору?
и всё-таки это абсолютно лишние строки
неправильно Коментарии сделал
C++
1
c = false; //меняем значение переменной, чтоб если компилятор перепутает кодовое слово if на кодовое слово while, не произошел бесконечный цикл
надо заменить на комментарий
C++
1
//при 2 использовании функции main функция loading не запускается
0
Tiva
94 / 94 / 21
Регистрация: 25.04.2012
Сообщений: 429
05.07.2013, 20:29 #14
Цитата Сообщение от metagalaxy Посмотреть сообщение
Так переменная постоянно true с чего циклу прекращаться?)) Ты инициализировал с, как истину и в проверочном условии зачем-то сравниваешь 2 константные истины получается.
а эти строки не находятся в цикле же. где там цикл то? это первые строки мейна
0
svk2140
88 / 0 / 3
Регистрация: 04.07.2013
Сообщений: 282
05.07.2013, 20:30  [ТС] #15
Цитата Сообщение от metagalaxy Посмотреть сообщение
Так переменная постоянно true с чего циклу прекращаться?)) Ты инициализировал с, как истину и в проверочном условии зачем-то сравниваешь 2 константные истины получается.
я уже понял в чём проблема. но спасибо за ответ)
0
metagalaxy
7 / 7 / 2
Регистрация: 18.02.2012
Сообщений: 61
05.07.2013, 20:30 #16
Цитата Сообщение от Tiva Посмотреть сообщение
а эти строки не находятся в цикле же. где там цикл то? это первые строки мейна
А зачем программе переходить к следующим строкам, если цикл постоянно true?
0
Tiva
94 / 94 / 21
Регистрация: 25.04.2012
Сообщений: 429
05.07.2013, 20:30 #17
Цитата Сообщение от svk2140 Посмотреть сообщение
неправильно Коментарии сделал
C++
1
c = false; //меняем значение переменной, чтоб если компилятор перепутает кодовое слово if на кодовое слово while, не произошел бесконечный цикл
надо заменить на комментарий
C++
1
//при 2 использовании функции main функция loading не запускается
я что-то не догоняю, но как мейн может отработать больше одного раза?
0
svk2140
88 / 0 / 3
Регистрация: 04.07.2013
Сообщений: 282
05.07.2013, 20:32  [ТС] #18
Цитата Сообщение от Tiva Посмотреть сообщение
я что-то не догоняю, но как мейн может отработать больше одного раза?
я же потом вызываю main)
0
Tiva
94 / 94 / 21
Регистрация: 25.04.2012
Сообщений: 429
05.07.2013, 20:32 #19
Цитата Сообщение от metagalaxy Посмотреть сообщение
А зачем программе переходить к следующим строкам, если цикл постоянно true?
да где цикл то?
C++
1
2
3
4
5
6
7
8
9
10
11
int main()
{
    bool c = true;
    if(c == true)
    {
        cout << "w" << endl;
        loading();
        c = false;
    }
    ....
}
вот цитируемый тобою код из функции main
где
здесь
цикл?
0
nexen
187 / 180 / 25
Регистрация: 27.01.2012
Сообщений: 1,335
05.07.2013, 20:33 #20
Tiva, автор повтороно вызывает функцию main();, глянь код через ctrl+f в браузере

Не по теме:

кто продал 100 грамм марихуаны автору?

1
05.07.2013, 20:33
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.07.2013, 20:33

Не выполняется условие
Если ввести в консольном приложении строку Terminator, то должно выполниться...

Не выполняется условие if
Нужна помощь не работает 13-я строка. #include &lt;iostream&gt; #include...

Не выполняется условие
Не могу найти в интернете толкового ответа на такой вопрос: как сделать так,...


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

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

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