Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ выделение памяти char* Подскажите пожалуйста как реализовать следующее: Человек вводит что-то с клавиатуры (строку и т.п.) И когда ему надоедает - нажимает enter - этим и завершает ввод строки. Проблема в следующем - нужно всё сделать своими функциями. Подскажите пожалуйста как примерно это реализовать? Я думал делать что-то типа: ввод одной буквы https://www.cyberforum.ru/ cpp-beginners/ thread924914.html C++ Русский и строки
вот есть такой кусок кода, сравнивающий строки: while(getline(user_state, buffer)){ cout << "\n" << buffer; pos = buffer.find(your_msg); if(pos != -1) { for(int i = 0; i < buffer.size(); i++){ if(buffer == '=') {pos = i; break;} } buffer = buffer.substr(pos+1); cout <<...
C++ Строка (почему вылетает программа?) https://www.cyberforum.ru/ cpp-beginners/ thread924885.html
Подскажите пожалуйста почему вылетает программа, вроде всё правильно написано. Вылетает на строчке string = string; # include <iostream> using namespace std; class MyString { public: char* string;
C++ Составление "словаря" рекурсией https://www.cyberforum.ru/ cpp-beginners/ thread924867.html
Добрый день уважаемые. Полазил на Вашем форуме, - очень много полезной информации. Интересные статьи от самих пользователей. Подчас доступнее, чем в книгах написано. Ну это лирика. А по сути вот что: Решил я написать составитель "словаря". Т.е. берутся номера символов аски(буквы и цифры) и составляются все возможные комбинации. Чтобы не перегружать тут сообщение и не влезать в нюансы...
Шаблоны. Нетиповые параметры C++
Доброго времени суток. Столкнулся с проблемой. В учебнике, по которому я занимаюсь, о нетиповых параметрах написан всего 1 абзац :), зато задачи присутствуют. Вот одна из них: Написать шаблон класса Array с использованием нетипового параметра numberOfElements, который определяет количество элементов массива. Ничего толком не зная о нетиповых параметрах я создал это (все постить не буду, ошибки...
C++ Принудительный выход из цикла https://www.cyberforum.ru/ cpp-beginners/ thread924811.html
Вообщем надо при определенном условии завершать вложенный цикл, такой код будет работать??? for(.....) { for(.....) { if (......) { дейтвие; дейтвие;
C++ Два взаимосвязных класса Имеется два файла заголовка. A.h #ifndef A_INCLUDED #define A_INCLUDED #include "B.h" class B; class A{ public: B* nt; void Afun() {} https://www.cyberforum.ru/ cpp-beginners/ thread924794.html Работа функции remove_copy_if () C++
вот такая функция проверки является ли выражение в строке палиндромом bool IfPolyndrom (string phrase) { string temp; remove_copy_if (phrase.begin (), phrase.end (), temp.begin (), NotChar);//удаляет НЕ буквы string reversed (temp); transform ( temp.rbegin (), temp.rend (), reversed.begin (), ToLower);//переводит в нижний регистр и записывает в обратном порядке ...
C++ Как подойти к решению задачи Кода и готового решения не прошу!!! Есть задачка грубо говоря звучит так: есть аудитория в которой сидят 30 человек, 1 за одной партой. У каждого есть максимум 4 соседа: спереди, справа, сзади, слева (но может и не быть некоторых из соседей, например человек сидит за первой партой во втором ряду у него нету соседа спереди). У каждого вначале есть 1000 бумажек с написанным на них порядковым... https://www.cyberforum.ru/ cpp-beginners/ thread924748.html C++ Задача по функциям (сохранение данных в массиве, вывод, среднее значение) Напишите программу, которая запрашивает у пользователя 10 результатов игры в гольф, сохраняя их в массиве. При этом необходимо обеспечить возможность прекращения ввода до ввода всех 10 результатов. Программа должна отобразить все результаты в одной строке и сообщить их среднее значение. Реализуйте ввод, отображение и вычисление среднего в трех отдельных функциях, работающих с массивами. https://www.cyberforum.ru/ cpp-beginners/ thread924736.html
C++ const_cast mutable
в чем разница? спасибо.
C++ Объединение строк и запись в файл https://www.cyberforum.ru/ cpp-beginners/ thread924701.html
Небольшая задача на C++ состоит в том что из файла t.txt считываются строки, затем заносятся в массив, объединяются и записываются в файл r.txt. Пример: Файл t.txt: char* word = new char ; Файл r.txt:
223 / 37 / 4
Регистрация: 18.11.2012
Сообщений: 1,502
23.12.2016, 06:36 0

О чем задача? - C++ - Ответ 9932931

23.12.2016, 06:36. Показов 1943. Ответов 13
Метки (Все метки)

Ответ

//Симулятор
Кликните здесь для просмотра всего текста
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
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
#include <iostream>
#include <iomanip>
//#include <windows.h>
//#include <stdio.h> 
//#include "TEXT.h"
 
 
struct SIMPLETRON
{
    int memory[100];
    int acumulator; //??????????
    int instructionCounter;//????? ???????? ??????????? ???????
    int operationCode; //??? ???????? ??? ??????? ???????????
                       //???????.
    int operand; //????? ???????? ?????? ??????????? ??????? 
    int instructionRegister; //????????????? ??????? ??? 
                             //???????? ??????????? ??????? 
};
 
 
void runing(SIMPLETRON *sim);
void DUMP(SIMPLETRON *sim);
enum OPERATION{READ = 10, WRITE = 11, LOAD = 20, STORE = 21, ADD = 30, SUBTRACT = 31, DIVIDE = 32, MULTIPLY = 33, BRANCH = 40, BRANCHNEG = 41, BRANCHZERO = 42, HALT = 43};
void startInfo();
using namespace std;
int main()
{
    OPERATION operation = READ;
    SIMPLETRON s;
 
    for(int x = 0; x < 100; x++)
    {
        s.memory[x] = +0000;
    }
 
    //int wordDate;
    int counter = 0;
    //==================================================================================
    startInfo();
    int wordDate;
 
    while(wordDate != -99999)
    {
        if(counter < 10)
        {
            cout << "0" << counter << "?" << ' ';
            cin >> wordDate;
            if((wordDate < -9999 || wordDate > 9999) && wordDate != -99999)
            {
                do 
                {
                    cout << "0" << counter << "?" << ' ';
                    cin >> wordDate;
                }
                while((wordDate < -9999 || wordDate > 9999) && wordDate != -99999);
                s.memory[counter++] = wordDate;
                //cout << endl;
            }
            else if(wordDate == - 99999)
            {
                break;
            }
            else 
            {
                s.memory[counter++] = wordDate;
            }
        }
        else
        {
            cout << counter << "?" << ' ';
            cin >> wordDate;
            if((wordDate < -9999 || wordDate > 9999) && wordDate != -99999)
            {
                do 
                {
                    cout << counter << "?" << ' ';
                    cin >> wordDate;
                }
                while((wordDate < -9999 || wordDate > 9999) && wordDate != -99999);
                s.memory[counter++] = wordDate;
                //cout << endl;
            }
            else if(wordDate == -99999)
            {
                break;
            }
            else 
            {
                s.memory[counter++] = wordDate;
            }
        }
    }
    cout << "*** " << "Загрузка программы завершена" << " ***" << endl;
    cout << "*** " << "Начинаю выполнение программы" << " ***" << endl;
 
    runing(&s);
    //==================================================================================
    
    cout << endl;
    return 0;
}
 
 
void runing(SIMPLETRON *sim)
{
    bool status = true;
    sim->acumulator = 00;
    sim->instructionCounter = 00;
    sim->instructionRegister = 00;
    sim->operand = 00;
    sim->operationCode = 00;
    while(status)
    {
        sim->instructionRegister = sim->memory[sim->instructionCounter];
        sim->operationCode = sim->instructionRegister / 100;
        sim->operand = sim->instructionRegister % 100;
        switch(sim->operationCode)
        {
            case READ:
                cout << "? ";
                cin >> sim->memory[sim->operand];
                sim->instructionCounter++;
            break; 
            
            case WRITE:
                cout << "=====================" << endl;
                cout << "|" << "Result = " << showpos << sim->memory[sim->operand] << "|" << endl;
                cout << "=====================" << endl;
                sim->instructionCounter++;
            break;
            
            case LOAD: 
                sim->acumulator = sim->memory[sim->operand];            
                sim->instructionCounter++; 
            break;
            
            case STORE: 
                sim->memory[sim->operand] = sim->acumulator; 
                sim->instructionCounter++;
            break;
            
            case ADD:
                sim->acumulator += sim->memory[sim->operand];
                if(sim->acumulator > 9999)
                {
                    sim->acumulator = 0;
                    cout << "*** " << "В результате вычислений произошло переполнение акумулятора" << " ***" << endl;
                    cout << "*** " << "Симплетрон аварийно завершил выполнение программы" << " ***" << endl;
                    DUMP(sim);
                    status = false;
                    break;
                }
                else 
                    sim->instructionCounter++;
                    break;
                
            case SUBTRACT: 
                sim->acumulator -= sim->memory[sim->operand];
                sim->instructionCounter++;
                if(sim->acumulator < -9999)
                {
                    sim->acumulator = 0;
                    cout << "*** " << "В результате вычислений произошло переполнение акумулятора" << " ***" << endl;
                    cout << "*** " << "Симплетрон аварийно завершил выполнение программы" << " ***" << endl;
                    DUMP(sim);
                    status = false;
                    break; 
                }
                else 
                {
                    break;
                }
                
            case DIVIDE:
                if(sim->memory[sim->operand] == 0)
                {
                    cout << "*** " << "Ошибка: попытка деления на нуль!" << " ***" << endl;
                    cout << "*** " << "Симплетрон аварийно завершил выполнение программы" << " ***" << endl;
                    DUMP(sim);
                    status = false;
                    break;
                }
                else 
                {
                    sim->acumulator /= sim->memory[sim->operand];
                    sim->instructionCounter++;
                    break;
                }
            
            case MULTIPLY:
                sim->acumulator *= sim->memory[sim->operand];
                sim->instructionCounter++;
                if(sim->acumulator > 9999)
                {
                    cerr << "*** " << "Результат операции умножения превосходит допустимый предел" << " ****" << endl;
                    cerr << "*** " << "Симплетрон аварийно завершил выполнение прогаммы" << " ***" << endl;
                    DUMP(sim);
                    sim->acumulator = 0;
                    status = false;
                    break;
                }
                else 
                {
                    break;
                }
            
            case BRANCH:
                sim->instructionCounter = sim->operand;
            break;
            
            case BRANCHNEG:
                if(sim->acumulator < 0)
                {
                    sim->instructionCounter = sim->operand;
                    break;
                }
                else 
                {
                    sim->instructionCounter++;
                    break;
                }
                
            case BRANCHZERO:
                if(sim->acumulator == 0)
                {
                    sim->instructionCounter = sim->operand;
                    break;
                }
                else
                {
                    sim->instructionCounter++;
                    break;
                }
            
            case HALT:
                status = false;
                cout << "*** " << "Симплетрон закончил свои вычисления" << " ***" << endl;
                cout << endl;
                DUMP(sim);
                break;
            default:
                cerr << "Неправильный код операции" << endl;
                DUMP(sim);
                status = false;
                break;
        }
    }
}
 
void DUMP(SIMPLETRON *sim)
{
    cout << "РЕГИСТРЫ:" << endl;
    cout << "acumulator:          " << sim->acumulator << endl;
    cout << "instructionCounter:  " << sim->instructionCounter << endl;
    cout << "instructionRegister: " << sim->instructionRegister << endl;
    cout << "operationCode:       " << sim->operationCode << endl;
    cout << "operand:             " << sim->operand << endl;
    cout << endl;
    cout << "ПАМЯТЬ:" << endl;
//============================================================= 
    cout << "  ";
    for(int row = 0; row < 10; row++)
    {
        cout << setw(7) << row;
    }
    cout << endl;
 
    for(int n = 0; n < 100; n += 10)
    {
        if(n == 0)
            cout << ' ' << noshowpos << n;
        else 
            cout << noshowpos << n;
        for(int m = n; m < n + 10; m++)
        {
            cout << "  ";
            if(sim->memory[m] == 0)
            {
                cout << setw(5) << showpos << right << "+0000";
            }
            else
            {
                cout << setw(5) << showpos << right << sim->memory[m];
            }
        }
        cout << endl;
    }
}
 
void startInfo()
{
    cout << "*** " << "Симплетрон приветствует вас!" << " ***" << endl;
    cout << "*** " << "Пожалуйста, введите вашу программу, по одной команде" << " ***" << endl;
    cout << "*** " << "(или слову данных) за раз. Я буду выводить в качестве" << " ***" << endl;
    cout << "*** " << "подсказки текущий адрес и знак вопроса(?). Введённое" << " ***" << endl;
    cout << "*** " <<  "вами слово будет размещено по указанному адресу. Для" << " ***" << endl;
    cout << "*** " << "прекращения ввода программы введите число  -99999" << " ***" << endl;
}


И мои варианты решения задач из 8.18
Кликните здесь для просмотра всего текста
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
+10 09
+10 10
+20 10
+41 07
+30 09
+21 09
+40 01 
+11 09
+43 00
//=================
+10 21  //первое число 
+10 22  //счётчик
+10 23  //число для уменьшения счётчика
 
+20 22
+21 25 //сохранит по этому адресу значение счётчика, которе    //  используется для вычисления среднего значения
//+20 21
+31 23
 
+10 24  //второе число
 
+42 15 
+21 22 
+20 24 
+30 21 
+21 21 
+20 22
+31 23
+40 06  //цикл 
//+10 24    //число для вычисления среднего введённых чисел
+20 21
+32 25
+21 21
+11 21
+43 00 
 
//========================
+10 25 //количество чисел, которые нужно обработать
+20 25
+21 26 //сохраним и используем как счётчик 
+10 27 //число с помощью которого уменьшаем счётчик(например 1)
 
+20 26
+31 27 //уменьшить счётчик на 1 
 
+42 23 //если счетчик количества ввод символ 0 то уходим на 20
+21 26 //сохраним счётчик  
+10 28 //второе число
+20 25 //в акумулятор первое число
+21 29 //временно сохраним перове число т.к. результат 
       //вычисления изменить первоначальное значение
+31 28
+41 18
+20 29 //восстановим сохранённое значение числа 
+21 25 
+20 26
+31 27  //уменьшим счетчик
+40 06
  
+20 28 
+21 25
+20 26 //уменьшим счётчик 
+31 27
+40 06 
 
+11 25 
+43 00


Вернуться к обсуждению:
О чем задача? C++
0
Заказать работу у эксперта
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.12.2016, 06:36
Готовые ответы и решения:

Задача math, не могу понять в чем ошибки
Приветствую, в универе задали сделать задачку, написать пример с парой переменных. Записать этот...

в чем ошибка? Задача на "положение улитки"
помогите пожалуйста! в чем ошибка в даном коде? Каждый солнечный день улитка, сидящая на дереве,...

в чем ошибка? задача на "сортировку массива"
Подскажите в чем ошибка в коде. Я должен отсортировать массив по убыванию элементов. #include...

Рекурсия: определите подмножество данных чисел, дающих сумму меньше, чем Z и с количеством членов большим чем K
имеется n различных натуральных чисел. определите подмножество данных чисел, дающих сумму меньше,...

13
23.12.2016, 06:36
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.12.2016, 06:36
Помогаю со студенческими работами здесь

Задача на рекурсию (в чем ошибка?)
Привет) Помогите пожалуйста найти ошибку. Задача на рекурсию про 8 ферзей. (В данном фрагменте...

В чем заключается задача анализа схемы?
В чем заключается задача анализа схемы? Нужно по схеме найти формулу(функцию проводимости),...

Найти сумму чётных элементов матрицы, исключая максимальный и минимальный, заменить ей угловые элементы
Ввести целочисленный двумерный массив AN×M, вывести его. Найти сумму его чётных элементов, исключая...

Есть задача, подскажите на чем проще писать?
Собственно задача 1 при наличии определённой ветки в реестре экспортировать её во временный файл и...

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru