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

Выход за пределы ленты справа - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Создать массив из элементов файла внеся в него числа превосходящие среднее значение исходного файла http://www.cyberforum.ru/cpp-beginners/thread1197108.html
Создать двоичный файл куда записать nвещественных чисел . сделать массив из элементов исходного файла внеся в него числа превосходящие среднее значение исходного файла, внеся в него числа превосходящие среднее значение среди положительных значений файла. помогите пожалуйста заплачу
C++ Перезагрузка оператора "=" для двух классов Есть такой исходник с двумя классами, но не работает перегрузка оператора "=" #include "stdafx.h" #include <iostream> using namespace std; class info_people{ protected: char*name; http://www.cyberforum.ru/cpp-beginners/thread1197107.html
Создать класс time для работы со временем C++
на языке C++ создать класс ВРЕМЯ,разработав следующие элементы класса: •Поля с;(временной интервал,заданный в секундах) •Конструктор,позволяющий создать экземпляр класса. •Методы позволяющие: вывести временной интервал в секундах пересчитать временной интервал в секундах в величину,выраженную в часах,минутах и секундах.
C++ Пересекаются ли треугольник и круг
Здравствуйте ребята . Вот над такой задачей какой день голову ломаю: Даны Круг и Треугольник . У круга известны координаты центра и радиус . У Треугольника все вершины известны. Надо определить их взаимное расположение и вывести ответ : Треугольник в круге , треугольник вне круга , треугольник пересекается . Сам не могу никак решить :-| :( А сдавать завтра . Помогите пожалуйста люди добрые....
C++ Определить максимальное из чисел, встречающихся в заданной матрице более одного раза http://www.cyberforum.ru/cpp-beginners/thread1197072.html
Есть код. 1 задание, где определяет количество строк, не содержащих ни одного нулевого элемента уже сделано. Помогите дописать код, чтобы определяло максимальное из чисел, встречающихся в заданной матрице более одного раза. Спасибо.. #include <iostream> using namespace std; void main() { int mass;// обьявили двумерный массив int count=0; // счетчик
C++ Построить базовый класс «здания» Построить базовый класс «здания» (год постройки, адрес, занимаемая площадь) и три наследуемых «жилые здания» (собственник, колво жильцов), «административные здания» (название организации, тип учреждения (государственное, негосударственное)), «производственные здания» (вид производства, кол-во работников). Внести не менее 15 записей. Приложение выводит сведения об интересующих ... подробнее

Показать сообщение отдельно
kira_1
0 / 0 / 0
Регистрация: 16.11.2013
Сообщений: 59
02.06.2014, 23:12     Выход за пределы ленты справа
Подскажите, пожалуйста, как добавить 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
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
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
#include <iostream>
 
using namespace std;
#include <conio.h>;
struct rule {
    char input;     // Входной символ '\0' - последний
    char state;     // Состояние. 'S' - начальное. 'Q' - завершение работы
    char output;    // Выходной символ
    char newState;  // Новое состояние
    char dir;       // Направление движения. 'L', 'R' - налево и направо соответственно. 'N' - не двигаться
};
 
bool turing(
    char* arr,      // Входная лента. Для простоты пусть будет конечной длины
    int len,        // Длина ленты
    rule* rules,    // Список правил
    int num         // Количество правил
) {
    int pos = 0;    // Положение ленты
    char st = 'A';  // Текущее состояние
    while (true) {
        char c = arr[pos];
        int i;
        for (i=0; i < num; ++i) {
            if ((rules[i].input==c) && (rules[i].state == st))
                break;
            
            else
                if (i == num-1) {
                    cout << "Не найдено правила для символа " << c << " при состоянии " << st << endl;
                    return false;
                }
 
        }
        arr[pos] = rules[i].output;
        st = rules[i].newState;
        switch (rules[i].dir) {
        case 'L':
            --pos;
            if (pos < 0) {
                cout << "Выход за пределы ленты слева" << endl;
                return false;
            }
            break;
        case 'R':
            ++pos;
            if (pos >= len) {
                cout << "Выход за пределы ленты справа" << endl;
                return false;
            }
            break;
        case 'N':
            break;
        default:
            cout << "Неопределенное направление" << endl;
            return false;
        }
        if (st == 'Q')
            return true;
    }
    return false;
}
int main() {
    setlocale(LC_ALL, "Russian");
 
    const int ruleNum = 24;
    rule rules[ruleNum];
 
    rules[0].input = '*';
    rules[0].state = 'A';
    rules[0].output = '*';
    rules[0].newState = 'A';
    rules[0].dir = 'R';
 
    rules[1].input = '1';
    rules[1].state = 'A';
    rules[1].output = '1';
    rules[1].newState = 'A';
    rules[1].dir = 'R';
 
    rules[2].input = 'x';
    rules[2].state = 'A';
    rules[2].output = 'x';
    rules[2].newState = 'B';
    rules[2].dir = 'R';
 
    rules[3].input = '1';
    rules[3].state = 'B';
    rules[3].output = 'a';
    rules[3].newState = 'C';
    rules[3].dir = 'R';
 
    rules[4].input = '1';
    rules[4].state = 'C';
    rules[4].output = '1';
    rules[4].newState = 'C';
    rules[4].dir = 'L';
 
    rules[5].input = 'a';
    rules[5].state = 'C';
    rules[5].output = 'a';
    rules[5].newState = 'C';
    rules[5].dir = 'L';
 
    rules[6].input = '=';
    rules[6].state = 'C';
    rules[6].output = '=';
    rules[6].newState = 'C';
    rules[6].dir = 'L';
 
    rules[7].input = 'x';
    rules[7].state = 'C';
    rules[7].output = 'x';
    rules[7].newState = 'D';
    rules[7].dir = 'L';
 
    rules[8].input = '1';
    rules[8].state = 'D';
    rules[8].output = 'a';
    rules[8].newState = 'E';
    rules[8].dir = 'R';
 
    rules[9].input = 'a';
    rules[9].state = 'D';
    rules[9].output = 'a';
    rules[9].newState = 'D';
    rules[9].dir = 'L';
 
    rules[10].input = '*';
    rules[10].state = 'D';
    rules[10].output = '*';
    rules[10].newState = 'J';
    rules[10].dir = 'R';
 
    rules[11].input = 'x';
    rules[11].state = 'E';
    rules[11].output = 'x';
    rules[11].newState = 'E';
    rules[11].dir = 'R';
 
    rules[12].input = 'a';
    rules[12].state = 'E';
    rules[12].output = 'a';
    rules[12].newState = 'E';
    rules[12].dir = 'R';
 
    rules[13].input = '=';
    rules[13].state = 'E';
    rules[13].output = '=';
    rules[13].newState = 'E';
    rules[13].dir = 'R';
 
    rules[14].input = '1';
    rules[14].state = 'E';
    rules[14].output = '1';
    rules[14].newState = 'E';
    rules[14].dir = 'R';
 
    rules[15].input = '*';
    rules[15].state = 'E';
    rules[15].output = '1';
    rules[15].newState = 'F';
    rules[15].dir = 'R';
 
    rules[16].input = '*';
    rules[16].state = 'F';
    rules[16].output = '*';
    rules[16].newState = 'C';
    rules[16].dir = 'L';
 
    rules[17].input = 'a';
    rules[17].state = 'J';
    rules[17].output = '1';
    rules[17].newState = 'J';
    rules[17].dir = 'R';
 
    rules[18].input = 'x';
    rules[18].state = 'H';
    rules[18].output = 'x';
    rules[18].newState = 'I';
    rules[18].dir = 'R';
 
    rules[19].input = 'a';
    rules[19].state = 'H';
    rules[19].output = 'a';
    rules[19].newState = 'H';
    rules[19].dir = 'R';
 
    rules[20].input = '1';
    rules[20].state = 'H';
    rules[20].output = 'a';
    rules[20].newState = 'C';
    rules[20].dir = 'R';
 
    rules[21].input = '=';
    rules[21].state = 'H';
    rules[21].output = '=';
    rules[21].newState = 'I';
    rules[21].dir = 'L';
 
    rules[22].input = 'a';
    rules[22].state = 'I';
    rules[22].output = '1';
    rules[22].newState = 'I';
    rules[22].dir = 'L';
 
    rules[23].input = 'x';
    rules[23].state = 'I';  
    rules[23].newState = 'Q';
    rules[23].dir = 'N';
 
 
    const int size = 9;
    char test[size] = {'*', '1', '1', '1', 'x', '1', '1', '*'};
 
    cout << "Входная лента: ";
    for (int i=0; i < size; ++i)
        cout << ' ' << test[i];
    if (turing(test, size, rules, ruleNum)) {
        cout << endl << "Выходная лента:";
        for (int i=0; i < size; ++i)
            cout << ' ' << test[i];
        cout << endl;
        getch();
        return 0;
    } else {
        cout << "Ошибка" << endl;
            getch();
        return 1;
    }
}
Добавлено через 25 минут
Как с помощью вектора сделать так, чтобы если массив выходит за границы справа, добавлялась ячейка вконец массива?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 19:31. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru