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

Как ограничить цикл ? - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Найти значение выражения http://www.cyberforum.ru/cpp-beginners/thread246031.html
Необходимо найти значение выражения y= a^x-sin(x). Все хорошо, вот только а должен быть больше нуля и не равен единице. Не знаю как после проверки(если введенный коэффициент не не удовлетворяет условию ) вернуться снова к вводу а. Зарание спасибо.
C++ Ввод из файла и вывод в файл #include<iostream> #include<iomanip> #include<ctime> #include<cstdlib> int main(){ const int n=6, m=7; int mat; for(int i=0; i<n*m; i++){ mat=rand()%20-10; http://www.cyberforum.ru/cpp-beginners/thread246011.html
Работа с файлами C++
Добрый день! Помогите, пожалуйста с задачей -- я в С++ совсем чайник. Просто хотя бы подскажите каким методом делать или пример какой-нибудь дайте. Надо, чтобы программа принимала 1 параметр командной строки -- имя файла, в котором содержится список дел. Я так поняла, что это выглядит приблизительно так: (подскажите, если что не правильно) #include <iostream> #include <fstream>...
C++ Что тут не так?
#include <iostream> #include <conio.h> using namespace std; bool is_it(char *); int main(){ char *str=new char; cout <<"Enter string > "; cin.getline(str,255); int n=is_it(str);
C++ новичок с вопросом http://www.cyberforum.ru/cpp-beginners/thread245997.html
Здравствуйте форумчане у меня вот такой вопрос к вам как хотящему начать изучать язык программирования: Собственно и сам вопрос: можно ли построить программу на голосовом управлении?То есть говоришь-выполняет...???И если да то что потребуется для этого?(дополнительные модули...) у меня же есть это ru_visual_studio_2010_ultimate Заранее благодарен
C++ В чём ошибка? #include <iostream> #include <conio.h> using namespace std; int main (){ const char*str1; cin.getline(str1,255); cout<<str1; getch(); return 0; } подробнее

Показать сообщение отдельно
Mr.X
Эксперт С++
 Аватар для Mr.X
2802 / 1578 / 247
Регистрация: 03.05.2010
Сообщений: 3,666
21.02.2011, 15:33     Как ограничить цикл ?
Цитата Сообщение от Stakhoff Посмотреть сообщение
Я прошу помочь:
1. в ограничении цикла, чтобы кол-во движений каждой из букв не было больше, к примеру, 100;
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
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
185
186
187
188
189
190
/////////////////////////////////////////////////////////////////////////////////////////
#include <algorithm>
#include <cstdlib> // поддержка функции очистки экрана system("cls")
#include <ctime>
#include <iostream>
#include <string>
/////////////////////////////////////////////////////////////////////////////////////////
typedef std::string  T_str;
/////////////////////////////////////////////////////////////////////////////////////////
const int  ROWS_TOTAL = 12;
const int  COLS_TOTAL = 19;
/////////////////////////////////////////////////////////////////////////////////////////
void  set_frame(char arr[][COLS_TOTAL])
{
    for(int  i = 0; i < ROWS_TOTAL; ++i)
    {
        for(int  j = 0; j < COLS_TOTAL; ++j)
        {
            if(   i == 0
               || i == ROWS_TOTAL - 1
               || j == 0
               || j == COLS_TOTAL - 1
              )
            {
                arr[i][j] = '*';
            }
            else
            {
                arr[i][j] = ' ';
            }
        }
    }
}
/////////////////////////////////////////////////////////////////////////////////////////
void  print_arr(char  arr[][COLS_TOTAL])
{
    for(int  i = 0; i < ROWS_TOTAL; ++i)
    {
        for(int  j = 0; j < COLS_TOTAL; ++j)
        {
            std::cout << arr[i][j];
        }
        std::cout << std::endl;
    }
}
/////////////////////////////////////////////////////////////////////////////////////////
void  random_move_letter
    (
        char  arr[][COLS_TOTAL],
        char  letter, 
        int&  row, 
        int&  col
    )
{
    enum
    {
        LEFT,
        RIGHT,
        TOP,
        BOTTOM,
        DIRECTIONS_TOTAL
    };
    const int LEFT_LIMIT    = 1;
    const int RIGHT_LIMIT   = COLS_TOTAL - 2;
 
    const int TOP_LIMIT     = 1;
    const int BOTTOM_LIMIT  = ROWS_TOTAL - 2;
 
    arr[row][col] = ' ';
 
    switch(rand() % DIRECTIONS_TOTAL)
    {
    case LEFT:
        col = std::max  (LEFT_LIMIT,   col - 1);
        break;
 
    case RIGHT:
        col = std::min  (RIGHT_LIMIT,  col + 1);
        break;
 
    case TOP:
        row = std::max  (TOP_LIMIT,    row - 1);
        break;
 
    case BOTTOM:
        row = std::min  (BOTTOM_LIMIT, row + 1);
        break;
    }
    arr[row][col] = letter;
}
/////////////////////////////////////////////////////////////////////////////////////////
void  play()
{
    static bool  is_finish    = false;
 
    static int   A_counter    = 0;
    static int   B_counter    = 0;
 
    const int    A_row_start  = 1;
    const int    A_col_start  = 1;
 
    const int    B_row_start  = ROWS_TOTAL - 2;
    const int    B_col_start  = COLS_TOTAL - 2;    
 
    int          A_row        = A_row_start;
    int          A_col        = A_col_start;
 
    int          B_row        = B_row_start;
    int          B_col        = B_col_start;
 
    char arr[ROWS_TOTAL][COLS_TOTAL];
    set_frame(arr); 
 
    const char   A_name   = 'A';
    const char   B_name   = 'B';
 
    arr[A_row][A_col] = A_name;    
    arr[B_row][B_col] = B_name;
 
    const int  ITERATIONS_TOTAL = 500;            
    for(int  iterations_counter = 0; ; ++iterations_counter)    
    {       
        system("cls");
        int  A_dist = abs(A_row - B_row_start) + abs(A_col - B_col_start);
        int  B_dist = abs(B_row - A_row_start) + abs(B_col - A_col_start);
 
        bool  A_is_winner = A_dist == 0;
        bool  B_is_winner = B_dist == 0;
 
        if(iterations_counter == ITERATIONS_TOTAL)
        {
            A_is_winner = A_dist < B_dist;
            B_is_winner = !A_is_winner;
        }
 
        std::cout << "Счет матча: " 
                  << (A_is_winner ? ++A_counter : A_counter)
                  << ":" 
                  << (B_is_winner ? ++B_counter : B_counter) 
                  << std::endl
                  << std::endl;
        
        std::cout << T_str(COLS_TOTAL * iterations_counter / ITERATIONS_TOTAL, '*')
                  << std::endl;
 
        print_arr(arr);        
 
        if(   A_is_winner
           || B_is_winner)
        {
            std::cout << (A_is_winner ? A_name : B_name)
                      << " забила ГОЛ!"
                      << std::endl
                      << std::endl
                      << "Нажмите Enter."
                      << std::endl;
 
            is_finish = true;
            break;
        }
 
        if(is_finish)
        {
            std::cout << std::endl
                      << std::endl
                      << "Нажмите Enter."
                      << std::endl;
 
            is_finish = false;
            break;
        }
        else
        {
            random_move_letter(arr, A_name, A_row, A_col);
            random_move_letter(arr, B_name, B_row, B_col);        
        }
    }
}
/////////////////////////////////////////////////////////////////////////////////////////
int main()
{ 
    std::locale::global(std::locale(""));
    srand(static_cast<unsigned>(time(0)));
    for(;;)
    {
        play();
        T_str  s;
        getline(std::cin, s);
    }
}
 
Текущее время: 01:50. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru