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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Krogoth
Сообщений: n/a
#1

Мне нужно упростить ввод таких данных - C++

19.05.2014, 21:48. Просмотров 116. Ответов 0
Метки нет (Все метки)

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
#define setCount(x) .count = x
#define setWord(x) .word = new (const char *[3])
#define setFunc(x) .func = new (void (*[3])())
 
void Reader::initSprites() {
    threadCount = 2;
    operationCount = new int[threadCount];
    operation = new (Operation (*[threadCount]));
 
    ///Sprite thread
    operationCount[0] = 6;
    operation[0] = new Operation[operationCount[0]];
 
    operation[0][0] setCount(3);
    operation[0][0] setWord (3) {"texture", "=", ""};
    operation[0][0] setFunc (3) {NULL, NULL, &Sprites::Load::setTextureFile};
 
    operation[0][1] setCount(3);
    operation[0][1] setWord (3) {"sizeX", "=", ""};
    operation[0][1] setFunc (3) {NULL, NULL, &Sprites::Load::setSizeX};
 
    operation[0][2] setCount(3);
    operation[0][2] setWord (3) {"sizeY", "=", ""};
    operation[0][2] setFunc (3) {NULL, NULL, &Sprites::Load::setSizeY};
 
    operation[0][3] setCount(3);
    operation[0][3] setWord (3) {"offsetX", "=", ""};
    operation[0][3] setFunc (3) {NULL, NULL, &Sprites::Load::setOffsetX};
 
    operation[0][4] setCount(3);
    operation[0][4] setWord (3) {"offsetY", "=", ""};
    operation[0][4] setFunc (3) {NULL, NULL, &Sprites::Load::setOffsetY};
 
    operation[0][5] setCount(3);
    operation[0][5] setWord (3) {"sheet", "{", "}"};
    operation[0][5] setFunc (3) {NULL, &Sprites::Sheet::Load::beginThread, &Sprites::Sheet::Load::endThread};
 
    ///Sheet thread
    operationCount[1] = 6;
    operation[1] = new Operation[operationCount[1]];
 
    operation[1][0] setCount(1);
    operation[1][0] setWord (1) {"vertical"};
    operation[1][0] setFunc (1) {&Sprites::Sheet::Load::vertical};
 
    operation[1][1] setCount(1);
    operation[1][1] setWord (1) {"horizontal"};
    operation[1][1] setFunc (1) {&Sprites::Sheet::Load::horizontal};
 
    operation[1][2] setCount(3);
    operation[1][2] setWord (3) {"firstX", "=", ""};
    operation[1][2] setFunc (3) {NULL, NULL, &Sprites::Sheet::Load::setFirstX};
 
    operation[1][3] setCount(3);
    operation[1][3] setWord (3) {"firstY", "=", ""};
    operation[1][3] setFunc (3) {NULL, NULL, &Sprites::Sheet::Load::setFirstY};
 
    operation[1][4] setCount(3);
    operation[1][4] setWord (3) {"frames", "=", ""};
    operation[1][4] setFunc (3) {NULL, NULL, &Sprites::Sheet::Load::setFrames};
 
    operation[1][5] setCount(3);
    operation[1][5] setWord (3) {"variations", "=", ""};
    operation[1][5] setFunc (3) {NULL, NULL, &Sprites::Sheet::Load::setVariations};
}
Эта процедура инициирует операции для чтения файлов типа Sprites (с 1 фигурной скобкой после ключевого слова sheet).
Есть ли возможность:
1. Оптимизировать ввод этих данных, или чтобы хотя бы красиво.
2. Заменить текущий алгоритм определения нужной операции по слову через цикл while на что-то более эффективное, потому что сейчас я делаю вот что:
C++
1
2
3
4
5
6
7
8
9
10
11
            file >> word;
            for (int i = 0; i != operationCount[thread]; i++)
            if (word == operation[thread][i].word[0]) {
                if (operation[thread][i].count != 1) {
                    code[thread] = i;
                    stage[thread] = 1;
                }
                if (operation[thread][i].func[0] != NULL)
                    operation[thread][i].func[0]();
                break;
            }
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.05.2014, 21:48     Мне нужно упростить ввод таких данных
Посмотрите здесь:

Нужно упростить код, сложение столбцов матрицы - C++
нужно упростить код, сложение столбцов. void k2 (int **myArray, int n, int m) { clrscr(); int i, j; //Счетчик int y; // число n...

Работа с матрицами (нужно упростить функцию main) - C++
Задача написать программу, которая вычисляет произведение элементов матриц A(4x4);B(5x5);C(3x3);, лежащих выше главной диагонали, а в конце...

Шифрование строки методом гаммирования (нужно упростить код) - C++
Всем привет! Ребята, есть программа которая шифрует входную строку методом гаммирования, но здесь куча всего непонятного типа iterator,...

Что мне нужно дописать - C++
If (b == 0) Cout << "\n ошибка деления на ноль" >> endl; Непонимаю что нужно дописать что бы программа не выдавала ошибку и...

нужно упростить (Найти сумму S первой группы смежных равных элементов) - C++
#include <stdio.h> #include <conio.h> #include <vcl.h> #define size 21 void input_array(int array, int n); void...

мне нужно, чтобы решение сохранялось в файл - C++
помогите, пожалуйста, с кодом. мне нужно, чтобы решение сохранялось в файл. то есть была сохранена исходная матрица, преобразованное и...

Всё компилируется, выводится, но не то что мне нужно - C++
Помогите пожалуйста, не понимаю, где что нужно добавлять! Задание: 1)Известны данные по продаже компьютеров в течение недели. Найти...

Найти два таких два таких элемента, разность модулей которых имеет максимальное значение - C++
в целочисленном массиве найти два таких два таких элемента,разность модулей котооых имеет максимальное значение, и удалить из их состава...

Есть файл написанный в borland 3.1. Мне его нужно открыть и откомпилировать. - C++
Есть файл написанный в borland 3.1. Мне его нужно открыть и откомпилировать. Но не получается с borland ничего запускаю файл BC.EXE,...

Мне нужно решить задачу на прологе.. хn,уn. Выяснить, найдуться ли среди точек с координатами (х1,у1)...( - C++
Мне нужно решить задачу на прологе: Даны целые числа х1,у1, х2,у2, ... хn,уn. Выяснить, найдуться ли среди точек с координатами...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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