Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/3: Рейтинг темы: голосов - 3, средняя оценка - 5.00
37 / 37 / 5
Регистрация: 12.02.2010
Сообщений: 239

Ошибка с массивами

05.06.2011, 14:15. Показов 576. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток. Пишу игру двадцать одно очко. Возникли проблемы с массивами. Есть класс, где хранятся: названия карт, значения карт, сумма всех очков и пара функций для генерации карт.
Сам класс:
C++
1
2
3
4
5
6
7
8
9
10
11
12
#ifndef _KARDS_H
#define _KARDS_H
class kards
{
    public:
    AnsiString kard[5];
    int znachenie[5];
    int sum;
    AnsiString generate(void); // функция для генерации случайной карты
    int znach(AnsiString kard); // функции для вычисления значения карты
};
#endif
И есть поток который работает с классом:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
void __fastcall GenIgrok::Execute()
{
    kards igrok;
    
    for (int i = 0; i < 6; i++)
    {       
        igrok.kard[i] = igrok.generate(); 
        igrok.znachenie[i] = igrok.znach(igrok.kard[i]);
    }
    
    HMODULE hdll = LoadLibrary("kards.dll");
    if (!hdll)
    {
        MessageDlg("Библиотека 'kards.dll' не найдена!", mtError,
            TMsgDlgButtons() << mbOK, 0);
        return;
    }
 
    Form1->Image8->Picture->Bitmap->LoadFromResourceName((unsigned int)hdll, igrok.kard[0]);
    Form1->Image9->Picture->Bitmap->LoadFromResourceName((unsigned int)hdll, igrok.kard[1]);
 
    FreeLibrary(hdll);
}
Когда программа выполняется появляется ошибка (скрин прикрепил), дальше программа отлично работает, все генерирует и все подсчитывает, но меня напрягает эта ошибка

Ради интереса попробовал немного изменить код, сделать без массивов.
Класс:
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
#ifndef _KARDS_H
#define _KARDS_H
 
class kards
{
    public:
    AnsiString kard1;
    AnsiString kard2;
    AnsiString kard3;
    AnsiString kard4;
    AnsiString kard5;
    AnsiString kard6;
 
    int znachenie1;
    int znachenie2;
    int znachenie3;
    int znachenie4;
    int znachenie5;
    int znachenie6;
 
    int sum;
    AnsiString generate(void);
    int znach(AnsiString kard);
};
 
#endif
Поток:
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
void __fastcall GenIgrok::Execute()
{
    kards igrok;
 
    igrok.kard1 = igrok.generate();
    igrok.znachenie1 = igrok.znach(igrok.kard1);
 
    igrok.kard2 = igrok.generate();
    igrok.znachenie2 = igrok.znach(igrok.kard2);
 
    igrok.kard3 = igrok.generate();
    igrok.znachenie3 = igrok.znach(igrok.kard3);
 
    igrok.kard4 = igrok.generate();
    igrok.znachenie4 = igrok.znach(igrok.kard4);
 
    igrok.kard5 = igrok.generate();
    igrok.znachenie5 = igrok.znach(igrok.kard5);
 
    igrok.kard6 = igrok.generate();
    igrok.znachenie6 = igrok.znach(igrok.kard6);
 
    HMODULE hdll = LoadLibrary("kards.dll");
    if (!hdll)
    {
        MessageDlg("Библиотека 'kards.dll' не найдена!", mtError,
            TMsgDlgButtons() << mbOK, 0);
        return;
    }
 
    Form1->Image8->Picture->Bitmap->LoadFromResourceName((unsigned int)hdll, igrok.kard1);
    Form1->Image9->Picture->Bitmap->LoadFromResourceName((unsigned int)hdll, igrok.kard2);
 
    FreeLibrary(hdll);
}
Код отлично и без ошибок работает, но меня это не очень устраивает, хотелось бы разобраться с массивами!
Миниатюры
Ошибка с массивами  
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
05.06.2011, 14:15
Ответы с готовыми решениями:

Ошибка с массивами в Windows XP
Написал программу. Если ее запускать в Windows 7 или Windows 98 SE то работает корректно, если же запустить в Windows XP то возникает...

Ошибка с двумернными массивами.
программа для суммы двумерных массивов. var x:array of integer; c:array of integer; b:array of integer; begin For i:=1 to n...

Ошибка в программе с массивами
Программа должна создавать двумерную матрицу и заполнять её рандомными числами в заданном диапазоне. при попытке построить массив...

1
Эксперт С++
 Аватар для grizlik78
2382 / 1666 / 279
Регистрация: 29.05.2011
Сообщений: 3,402
05.06.2011, 14:22
Вот здесь:
C++
1
2
3
4
5
class kards
{
        AnsiString kard[5];
        int znachenie[5];
};
для создаются массивы по 5 элементов.
А вот здесь:
C++
1
2
3
4
5
        for (int i = 0; i < 6; i++)
        {               
                igrok.kard[i] = igrok.generate(); 
                igrok.znachenie[i] = igrok.znach(igrok.kard[i]);
        }
Используется по 6 элементов из каждого массива.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
05.06.2011, 14:22
Помогаю со студенческими работами здесь

Ошибка, связанная с массивами
Вот такой код для такой задачи: записать в массиве М количество положительных элементов каждого столбца матрицы A(K,L). #include...

Ошибка со строковыми массивами
При запуске активити выдает вот эту ошибку: Error:Error: Duplicate resources:...

Ошибка в программе с массивами
Помогите,пожалуйста, исправить программу так,чтобы вместо всего массива мне выводило массив с заданным числом &quot;n&quot;. Например,у...

Задачи с массивами (Ошибка)
Ребят, учусь на первом курсе, экзамен по программированию..задача на массивы двумерном массиве 8х10 поменять местами левую верхнюю...

Ошибка при работе с массивами
Здравствуйте. Хочу сделать программу, которая сортирует цифры. Вот код: #include &lt;iostream&gt; using namespace std; int...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка. Рецензия / Мнение/ Перевод Сайт называется reddit: The Thinkpad X220 Tablet is the best budget school laptop period. Это. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru