Randomize 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
#include <iostream>
#include <iomanip>
#include <conio.h>
#include <stdlib.h>
#include <cstdlib> 
 
 
 
 
using namespace std;
 
class Massiv
{
    int *a, *b, n, min;
public:
    void Sozd();
    void Vvod_Sl();
    void Form(int n1, int n2);
    void Form_2(int n3, int n4);
    void Print();
    void Print_2(int number);
    void Print_3(int rec, int field);
};
 
void main()
{
    Massiv a, b;
    int number, punkt, rec, field, kol, n1, n2, n, n3, n4;
    //clrscr();
    cout << "1 - sozdanie massiva"; cout << endl;
    cout << "2 - pechat vseh strok"; cout << endl;
    cout << "3 - pechat stroki po indeksu"; cout << endl;
    cout << "4 - sceplenie dvuh massivov"; cout << endl;
    cout << "5 - sliyanie dvuh massivov"; cout << endl;
    cout << "6 - pechat konkretnogo elementa konkretnoi stroki"; cout << endl;
    cout << "7 - vihod"; cout << endl;
    cout << "Vvedite punkt menu "; cin >> punkt;
    while (punkt != 7)
    {
        switch (punkt)
        {
        case 1: {randomize();    //sozdanie massiva
            a.Vvod_Sl();
            cout << endl;
            a.Print();
            cout << endl;
            cout << "1 - sozdanie massiva"; cout << endl;
            cout << "2 - pechat vseh strok"; cout << endl;
            cout << "3 - pechat stroki po indeksu"; cout << endl;
            cout << "4 - sceplenie dvuh massivov"; cout << endl;
            cout << "5 - sliyanie dvuh massivov"; cout << endl;
            cout << "6 - pechat konkretnogo elementa konkretnoi stroki"; cout << endl;
            cout << "7 - vihod"; cout << endl;
            cout << "Vvedite punkt menu "; cin >> punkt;
        }
                break;
        case 2: {a.Print(); //pechat massiva
            cout << endl;
            cout << "1 - sozdanie massiva"; cout << endl;
            cout << "2 - pechat vseh strok"; cout << endl;
            cout << "3 - pechat stroki po indeksu"; cout << endl;
            cout << "4 - sceplenie dvuh massivov"; cout << endl;
            cout << "5 - sliyanie dvuh massivov"; cout << endl;
            cout << "6 - pechat konkretnogo elementa konkretnoi stroki"; cout << endl;
            cout << "7 - vihod"; cout << endl;
            cout << "Vvedite punkt menu "; cin >> punkt; }
                break;
        case 3: { //pechat stroki po indeksu
            cout << "Vvedite nomer massiva (numeracia s 0!): "; cin >> number;
            cout << endl;
            a.Print_2(number);
            cout << "1 - sozdanie massiva"; cout << endl;
            cout << "2 - pechat vseh strok"; cout << endl;
            cout << "3 - pechat stroki po indeksu"; cout << endl;
            cout << "4 - sceplenie dvuh massivov"; cout << endl;
            cout << "5 - sliyanie dvuh massivov"; cout << endl;
            cout << "6 - pechat konkretnogo elementa konkretnoi stroki"; cout << endl;
            cout << "7 - vihod"; cout << endl;
            cout << "Vvedite punkt menu "; cin >> punkt;
        }
                break;
        case 4: {  //sceplenie dvuh massivov
            cout << "Vvrdite nomer 1-go massiva(numeracia s 0!): "; cin >> n1; cout << endl;
            cout << "Vvedite nomer 2-go massiva(numeracia s 0!): "; cin >> n2; cout << endl;
            a.Form(n1, n2);
            cout << endl;
            cout << "1 - sozdanie massiva"; cout << endl;
            cout << "2 - pechat vseh strok"; cout << endl;
            cout << "3 - pechat stroki po indeksu"; cout << endl;
            cout << "4 - sceplenie dvuh massivov"; cout << endl;
            cout << "5 - sliyanie dvuh massivov"; cout << endl;
            cout << "6 - pechat konkretnogo elementa konkretnoi stroki"; cout << endl;
            cout << "7 - vihod"; cout << endl;
            cout << "Vvedite punkt menu "; cin >> punkt; }
                break;
        case 5: {  //sliyanie dvuh massivov
            cout << "Vvrdite nomer 1-go massiva(numeracia s 0!): "; cin >> n3; cout << endl;
            cout << "Vvedite nomer 2-go massiva(numeracia s 0!): "; cin >> n4; cout << endl;
            a.Form_2(n3, n4);
            cout << endl;
            cout << "1 - sozdanie massiva"; cout << endl;
            cout << "2 - pechat vseh strok"; cout << endl;
            cout << "3 - pechat stroki po indeksu"; cout << endl;
            cout << "4 - sceplenie dvuh massivov"; cout << endl;
            cout << "5 - sliyanie dvuh massivov"; cout << endl;
            cout << "6 - pechat konkretnogo elementa konkretnoi stroki"; cout << endl;
            cout << "7 - vihod"; cout << endl;
            cout << "Vvedite punkt menu "; cin >> punkt; }
                break;
 
        case 6: {  //pechat konkretnogo elementa konkretnoi stroki
            cout << "Vvedite nomer stroki massiva(numeraciya s 0!): "; cin >> rec;
            cout << endl;
            cout << "Vvedite nomer stolbca: "; cin >> field;
            cout << endl;
            a.Print_3(rec, field);
            cout << "1 - sozdanie massiva"; cout << endl;
            cout << "2 - pechat vseh strok"; cout << endl;
            cout << "3 - pechat stroki po indeksu"; cout << endl;
            cout << "4 - sceplenie dvuh massivov"; cout << endl;
            cout << "5 - sliyanie dvuh massivov"; cout << endl;
            cout << "6 - pechat konkretnogo elementa konkretnoi stroki"; cout << endl;
            cout << "7 - vihod"; cout << endl;
            cout << "Vvedite punkt menu "; cin >> punkt; }
                break;
        case 7:
            break;
            system("pause");
        }
    }
 
}
void Massiv::Sozd()
{
    int m;
    cout << "kolvo strok?"; cin >> n;
    int min = 0;
    for (int i = 0; i<n; i++)
    {
        cout << "kolvo elementov v " << i + 1 << " stroke?"; cin >> m;
        *(b + i) = m;
        if (min<m) min = m;
    }
    a = (int*)malloc(sizeof(int)*n*min);
}
void Massiv::Vvod_Sl()
{
    Sozd();
    for (int i = 0; i<n; i++)
        for (int j = 0; j<*(b + i); j++)
        {
            *(a + i + j) = -20 + random(41);
        }
}
void Massiv::Print()
{
    for (int i = 0; i<n; i++)
    {
        for (int j = 0; j<*(b + i); j++)
        {
            cout << setw(6) << *(a + i + j);
        }
        cout << endl;
    }
}
void Massiv::Print_2(int number)
{
    for (int i = 0; i<n; i++)
    {
        for (int j = 0; j<*(b + i); j++)
        {
            if (i == number) cout << setw(6) << *(a + i + j);
        }
        cout << endl;
    }
}
 
void Massiv::Print_3(int rec, int field)
{
    for (int i = 0; i<n; i++)
    {
        for (int j = 0; j<*(b + i); j++)
        {
            if ((i == rec) && (j == field)) cout << "Danii element= " << setw(6) << *(a + i + j);
            else "Massiv s takimi dannimi ne naiden!";
        }
        cout << endl;
    }
}
 
void Massiv::Form(int n1, int n2)
{
    int m1, m2, k, j, l, p;
    int c[20];
    //zapominaem kolvo elementov v strokah
    m1 = *(b + n1);
    m2 = *(b + n2);
    // *(b+n1)=m1+m2;
    int m3 = m1 + m2;
    k = 0;
    for (l = 0; l<m3; l++)
        if (l<m1)
        {
            c[l] = *(a + n1 + l);
            cout << setw(6) << c[l];
        }
        else if ((l >= m1) && (l<m3))
        {
            c[l] = *(a + n2 + k);
            cout << setw(6) << c[l];
            k++;
        }
}
void Massiv::Form_2(int n3, int n4)
{
    int m1, m2, k, j, l, p, l1;
    int c[20], f[20];
    //zapominaem kolvo elementov v strokah
    m1 = *(b + n3);
    m2 = *(b + n4);
    int m3 = m1 + m2;
    k = 0;
    for (l = 0; l<m3; l++)
    {
        if (l<m1)
        {
            c[l] = *(a + n3 + l);
        }
        else if ((l >= m1) && (l<m3))
        {
            c[l] = *(a + n4 + k);
            k++;
        }
    }
    l1 = 0;
    f[l1] = c[l1];
    cout << setw(6) << f[l1];
    //sliyanie
    for (p = 1; p<m3; p++)
        if (f[l1] != c[p])
        {
            l++;
            f[l1] = c[p];
            cout << setw(6) << f[l1];
        }
}

I have the following code:

#include <cstdlib>
#include <iostream>
#include <stdlib.h>

using namespace std;

int main()
{
 int a,n,count;
 count=0; randomize();
 a=1+random(100);  
 cout<<"Enter A No. Between 1 to 100";
 do
  { 
    cin>>n;
    count++;
    if(n>a)
           cout<<"Enter a lower no.";
    else if(n<a)
           cout<<"Enter a higher no.";
    }while(n!=a);
cout<<count;

system("PAUSE");
return EXIT_SUCCESS;
}

The errors are:

  • E:c++main.cpp In function `int main()’:
  • 10 E:c++main.cpp `randomize’ undeclared (first use this function)
  • (Each undeclared identifier is reported only once for each function it appears in.)
  • 11 E:c++main.cpp `random’ undeclared (first use this function)

Can anyone help me understand why these errors are occurring?

RPHerbig's user avatar

asked Aug 24, 2012 at 17:39

user142187's user avatar

8

randomize() is not a standard C++ function, you will have to use srand(something) to seed a random number generator, where something will ussually be current time (time(0)).

Also, random() is not a standard function, you will have to use rand()

So, something like this (cleaned up a little):

#include <ctime>
#include <cstdlib>
#include <iostream>

using namespace std;

int main()
{
    srand(time(0));
    int n, count = 0;
    int a = 1 + (rand() % 100);  
    cout << "Enter A No. Between 1 to 100";
    do
    { 
        cin >> n;
        count++;
        if (n>a)
            cout << "Enter a lower no.";
        else if (n<a)
            cout << "Enter a higher no.";
    } while(n!=a);
    cout << count;

    system("PAUSE");
    return EXIT_SUCCESS;
}

answered Aug 24, 2012 at 17:41

2

You’re using a function (here: count=0; randomize();) named «randomize» — the compiler doesn’t know where to find this function, as it’s not defined in your code, nor in any header you’re including.

I suspect you wanted srand() and rand().


For example — you can rewrite your existing code like the following. To use this code — you’ll need to also #include <time.h> in your includes:

int main()
{
 int a,n,count;
 count=0; 
 srand(time(NULL)); // use instead of "randomize"
 a = 1 + (rand() % 100); 
 // ... Rest of your code

answered Aug 24, 2012 at 17:40

Reed Copsey's user avatar

Reed CopseyReed Copsey

552k78 gold badges1153 silver badges1373 bronze badges

3

The methods you’re attempting to call are called srand and rand.

randomize and random are not part of the language.

answered Aug 24, 2012 at 17:40

Luchian Grigore's user avatar

Luchian GrigoreLuchian Grigore

252k64 gold badges457 silver badges621 bronze badges

3

If you have a C++11 compiler that includes <random> (if you don’t, you can use boost::random from Boost library), you can use this class for better pseudo-random numbers:

#include <ctime>
#include <random>

class rng
{
private:
    std::mt19937 rng_engine;

    static rng& instance()
    {
        static rng instance_; 
        return instance_;
    }

    rng() {
        rng_engine.seed(
            static_cast<unsigned long>(time(nullptr))
            );
    };

    rng(rng const&);
    void operator=(rng const&);

public:
    static long random(long low, long high)
    {
        return std::uniform_int_distribution<long>
              (low, high)(instance().rng_engine);
    }
};

Then you use this to get random numbers in a [a,b] interval:

long a = rng::random(a, b);

You don’t need to seed it manually as it will be seeded on first invocation.

answered Aug 24, 2012 at 17:59

1

Я и мой друг пытаемся сделать игру «Палач», используя C ++ для нашего школьного проекта. Но при компиляции сообщения показывают, что стандартные функции randomize () и random не были объявлены в этой области. Что не так в коде?

#include <iostream>
#include <cstdlib>
#include <cstring>
#include <cstdio>
using namespace std;
const int MAXLENGTH=80;
const int MAX_TRIES=5;
const int MAXROW=7;

int letterFill (char guess, char secretword[], char guessword[]) {
int matches = 0;
for (int i = 0; secretword[i]!=''; i++) {
if (guess == guessword[i])
return 0;
if (guess == secretword[i]) {
guessword[i] = guess;
matches++;
}
}
return matches;
}

void initUnknown (char word[], char unknown[]) {
int i, length = strlen(word);
for (i = 0; i < length; i++)
unknown[i]='*';
unknown[i]='';
}

int main () {
char unknown [MAXLENGTH];
char letter;
int wrong_guesses=0;
char word[MAXLENGTH];
char words[][MAXLENGTH] = { "batman begins", "superman returns", "2012",
"tarzan", "goal", "300", "space jam", "transformers", "megamind",
"spiderman" };
randomize();
int n=random(10);
strcpy(word,words[n]);
initUnknown(word, unknown);

cout << "nnWelcome to hangman...Guess a Movie Name";
cout << "nnEach letter is represented by a star.";
cout << "nnYou have to type only one letter in one try";
cout << "nnYou have " << MAX_TRIES << " tries to try and guess the word.";
cout << "n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~";

while (wrong_guesses < MAX_TRIES) {
cout << "nn" << unknown;
cout << "nnGuess a letter: ";
cin >> letter;
if (!letterFill(letter, word, unknown)) {
cout << endl << "Whoops! That letter isn't in there!" << endl;
wrong_guesses++;
} else
cout << endl << "You found a letter! Isn't that exciting!" << endl;

cout << "You have " << MAX_TRIES - wrong_guesses;
cout << " guesses left." << endl;
if (!strcmp(word, unknown)) {
cout << word << endl;
cout << "Yeah! You got it!";
break;
}
}
if(wrong_guesses == MAX_TRIES) {
cout << "nSorry, you lose...you've been hanged." << endl;
cout << "The word was : " << word << endl;
}
cin.get();
}

-3

Решение

Другие решения


Форум программистов Vingrad

Модераторы: Poseidon

Поиск:

Ответ в темуСоздание новой темы
Создание опроса
> [C++] Почему не срабатывает randomize, что нужно подключить 

V

   

Опции темы

asdf999
Дата 5.6.2007, 14:47 (ссылка)
| (нет голосов)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

Новичок

Профиль
Группа: Участник
Сообщений: 18
Регистрация: 24.5.2007

Репутация: нет
Всего: нет

Подскажите пожалуйста почему у меня не работает в visual studio 2006  randomize, всегда выдает 
‘randomize’ : undeclared identifier  smile 

PM MAIL   Вверх
kali
Дата 5.6.2007, 14:59 (ссылка)
| (нет голосов)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

Шустрый
*

Профиль
Группа: Участник
Сообщений: 139
Регистрация: 9.11.2006
Где: Минск

Репутация: 18
Всего: 20

неподключен заголовочный файл в котором описана функция

———————

Работая над решением задачи, всегда полезно знать ответ.

PM MAIL Skype   Вверх
Xenon
Дата 5.6.2007, 15:01 (ссылка)
| (нет голосов)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

Эксперт
***

Профиль
Группа: Участник Клуба
Сообщений: 1529
Регистрация: 12.4.2006

Репутация: 19
Всего: 50

Это что за функция такая ? smile
Я только rand() и srand() знаю. Может randomize() это детище Borland Builder`a ? smile

———————

user posted image  

PM MAIL   Вверх
Alexeis
Дата 5.6.2007, 15:11 (ссылка)
| (нет голосов)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

Амеба
Group Icon

Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 23
Всего: 459

  Да это из VCL только пишеться он с большой буквы, вот так Randomize();  smile 

———————

Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать

PM ICQ Skype   Вверх
asdf999
Дата 5.6.2007, 21:58 (ссылка)
| (нет голосов)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

Новичок

Профиль
Группа: Участник
Сообщений: 18
Регистрация: 24.5.2007

Репутация: нет
Всего: нет

Цитата
Да это из VCL только пишеться он с большой буквы, вот так Randomize();    

все равно не воспринимает

Цитата
Я только rand() и srand() знаю. Может randomize() это детище Borland Builder`a ?

пробовал заменить randomize() на rand—нормально, без ошибок, но вот как
заменить вот это например:

Код

 a[i] = rand(50);

??

PM MAIL   Вверх
Alexeis
Дата 5.6.2007, 22:03 (ссылка)
| (нет голосов)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

Амеба
Group Icon

Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 23
Всего: 459

Цитата(asdf999 @  5.6.2007,  21:58 Найти цитируемый пост)
все равно не воспринимает

visual studio 2006 != Borland Developer Studio  smile  потому и не работает. 

Цитата(asdf999 @  5.6.2007,  21:58 Найти цитируемый пост)
пробовал заменить randomize() на rand—нормально, без ошибок

  Аналог randomize() это srand().

———————

Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать

PM ICQ Skype   Вверх
Dov
Дата 5.6.2007, 22:34 (ссылка)
| (нет голосов)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

аСинизатор
***

Профиль
Группа: Завсегдатай
Сообщений: 1721
Регистрация: 10.5.2003
Где: Эрец-Исраэль

Репутация: 50
Всего: 88

Цитата(asdf999 @  5.6.2007,  21:58 Найти цитируемый пост)
но вот какзаменить вот это

Так:

Код

// ...

int main()
{
    srand((unsigned)time(NULL));

        // ...

        a[i] = rand() % 50;   // значения: 0...49

        // ...

        return 0;
}

Думаю, что для твоих задач тебе этого вполне хватит.  smile

———————

Тут вечности запах томительный,
И свежие фрукты дешевые, 
А климат у нас – изумительный, 
И только соседи – #уевые. 
                           Игорь Губерман.

PM   Вверх
Xenon
Дата 6.6.2007, 00:38 (ссылка)
| (нет голосов)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

Эксперт
***

Профиль
Группа: Участник Клуба
Сообщений: 1529
Регистрация: 12.4.2006

Репутация: 19
Всего: 50

time.h только не забудь подключить smile

———————

user posted image  

PM MAIL   Вверх
asdf999
Дата 6.6.2007, 12:21 (ссылка)
| (нет голосов)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

Новичок

Профиль
Группа: Участник
Сообщений: 18
Регистрация: 24.5.2007

Репутация: нет
Всего: нет

понятно, спасибо всем!smile

PM MAIL   Вверх



















Ответ в темуСоздание новой темы
Создание опроса
Правила форума «Центр помощи»

ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Несоблюдение правил может повлечь за собой самые строгие меры от закрытия/удаления темы до бана пользователя!

  • Название темы должно отражать её суть! (Не следует добавлять туда слова «помогите», «срочно» и т.п.)
  • При создании темы, первым делом в квадратных скобках укажите область, из которой исходит вопрос (язык, дисциплина, диплом). Пример: [C++].
  • В названии темы не нужно указывать происхождение задачи (например «школьная задача», «задача из учебника» и т.п.), не нужно указывать ее сложность («простая задача», «легкий вопрос» и т.п.). Все это можно писать в тексте самой задачи.
  • Если Вы ошиблись при вводе названия темы, отправьте письмо любому из модераторов раздела (через личные сообщения или report).
  • Для подсветки кода пользуйтесь тегами [code][/code] (выделяйте код и нажимаете на кнопку «Код»). Не забывайте выбирать при этом соответствующий язык.
  • Помните: один топик — один вопрос!
  • В данном разделе запрещено поднимать темы, т.е. при отсутствии ответов на Ваш вопрос добавлять новые ответы к теме, тем самым поднимая тему на верх списка.
  • Если вы хотите, чтобы вашу проблему решили при помощи определенного алгоритма, то не забудьте описать его!
  • Если вопрос решён, то воспользуйтесь ссылкой «Пометить как решённый», которая находится под кнопками создания темы или специальным флажком при ответе.

Более подробно с правилами данного раздела Вы можете ознакомится в этой теме.


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman

 

0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Центр помощи | Следующая тема »
MiiNiPaa

@MiiNiPaa

В С++ функций randomize() и random() нет. Скорее всего, в книге используется компилятор Борланда, который устарел ещё в прошлом тысячелетии, любит использовать библиотеки и API Паскаля, и не следует стандарту.

Ещё есть функция random() в стандарте POSIX, который используется главным образом на Unix-подобных системах

Ответ написан

более трёх лет назад


Комментировать


Комментировать

Понравилась статья? Поделить с друзьями:
  • Ranch simulator ошибка при запуске
  • Ranch simulator ошибка fatal error
  • Rampage trainer gta 5 ошибка
  • Ram expander ошибка
  • Rake ошибка connection failed