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

Хэштаблицы с квадратичным исследованием.Ошибка - C++

Восстановить пароль Регистрация
 
yuliyayuliya28
3 / 3 / 0
Регистрация: 06.03.2011
Сообщений: 319
03.10.2011, 18:20     Хэштаблицы с квадратичным исследованием.Ошибка #1
Здравствуйте, помогите исправить ошибку

Ошибка Error error C2065: 'mas' : undeclared identifier


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
#include "stdafx.h"
 
#include <time.h>
#include <conio.h>
#include "iostream"
#include<stdlib.h>
 
using namespace std;
 
int _tmain(int argc, _TCHAR* argv[])
{
    setlocale(LC_ALL,"");
    
    
    int a,h,m,b, choise;
    
    
         for(;;)
        {
            cout<<"[1]Находим h"<<endl;
            cout<<"[2]Поиск"<<endl;
            cout<<"[3]Все значения"<<endl;
            cout<<"[4]Выход"<<endl;
         }
        char choice=getch();
 switch(choice)
 {
    case'1':
        srand(time(NULL));
        cout<<"Введите размерность"<<endl;
        cin>>m;
        cout<<"Введите значение "<<endl;
        cin>>a;
        cout<<endl;
        mas = new int [m];
        for(int j=0;j<m;j++)
        {   
            mas[j]=rand()%2;
            cout<<mas[j]<<" ";
        }
        for(int i=0;i<(m-1);i++)
        {
            h=(a+0,4*i+0,6*i^i)%10;
            if (mas[i]=0)
                mas[i]=a;
                cout<<h;
        }
        break;
 
    case'2':
        cout<<"Введите искомое число "<<endl;
        cin>>b;
        cout<<endl;
        
        for(int i=0;i<m;i++)
        if (mas[i]=b)
            cout<<"Есть"<<b;
        else cout<<"Нет";
        break;
    case'3':
        for(int j=0;j<m;j++)
        {   
            cout<<mas[j]<<" ";
        }
    case'4':
            exit(1);     
 }
    _getch();
    return 0;
 
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.10.2011, 18:20     Хэштаблицы с квадратичным исследованием.Ошибка
Посмотрите здесь:

типизированный файл, ошибка ошибка при выходе C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ybrjk
26 / 26 / 2
Регистрация: 06.11.2010
Сообщений: 77
03.10.2011, 18:26     Хэштаблицы с квадратичным исследованием.Ошибка #2
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
#include <time.h>
#include <conio.h>
#include "iostream"
#include<stdlib.h>
 
using namespace std;
 
int main()
{
        setlocale(LC_ALL,"");
        int a,h,m,b, choise;
        
      
                        cout<<"[1]Находим h"<<endl;
                        cout<<"[2]Поиск"<<endl;
                        cout<<"[3]Все значения"<<endl;
                        cout<<"[4]Выход"<<endl;
                
                char choice=_getch();
                int *mas = new int [m];
 switch(choice)
 {
        case'1':
                srand(time(NULL));
                cout<<"Введите размерность"<<endl;
                cin>>m;
                cout<<"Введите значение "<<endl;
                cin>>a;
                cout<<endl;
                for(int j=0;j<m;j++)
                {       
                        mas[j]=rand()%2;
                        cout<<mas[j]<<" ";
                }
                for(int i=0;i<(m-1);i++)
                {
                        h=(a+0,4*i+0,6*i^i)%10;
                        if (mas[i]=0)
                                mas[i]=a;
                            cout<<h;
                }
                break;
 
        case'2':
                cout<<"Введите искомое число "<<endl;
                cin>>b;
                cout<<endl;
                
                for(int i=0;i<m;i++)
                if (mas[i]=b)
                        cout<<"Есть"<<b;
                else cout<<"Нет";
                break;
        case'3':
        for(int j=0;j<m;j++)
                {       
                        cout<<mas[j]<<" ";
                }
    case'4':
                        exit(1);     
 }
    system("pause");
 
}
yuliyayuliya28
3 / 3 / 0
Регистрация: 06.03.2011
Сообщений: 319
04.10.2011, 09:55  [ТС]     Хэштаблицы с квадратичным исследованием.Ошибка #3
Цитата Сообщение от Ybrjk Посмотреть сообщение
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
#include <time.h>
#include <conio.h>
#include "iostream"
#include<stdlib.h>
 
using namespace std;
 
int main()
{
        setlocale(LC_ALL,"");
        int a,h,m,b, choise;
        
      
                        cout<<"[1]Находим h"<<endl;
                        cout<<"[2]Поиск"<<endl;
                        cout<<"[3]Все значения"<<endl;
                        cout<<"[4]Выход"<<endl;
                
                char choice=_getch();
                int *mas = new int [m];
 switch(choice)
 {
        case'1':
                srand(time(NULL));
                cout<<"Введите размерность"<<endl;
                cin>>m;
                cout<<"Введите значение "<<endl;
                cin>>a;
                cout<<endl;
                for(int j=0;j<m;j++)
                {       
                        mas[j]=rand()%2;
                        cout<<mas[j]<<" ";
                }
                for(int i=0;i<(m-1);i++)
                {
                        h=(a+0,4*i+0,6*i^i)%10;
                        if (mas[i]=0)
                                mas[i]=a;
                            cout<<h;
                }
                break;
 
        case'2':
                cout<<"Введите искомое число "<<endl;
                cin>>b;
                cout<<endl;
                
                for(int i=0;i<m;i++)
                if (mas[i]=b)
                        cout<<"Есть"<<b;
                else cout<<"Нет";
                break;
        case'3':
        for(int j=0;j<m;j++)
                {       
                        cout<<mas[j]<<" ";
                }
    case'4':
                        exit(1);     
 }
    system("pause");
 
}
Спасибо
Не подскажите что не так в моё коде?почему не выполняется квадратичное исследование после добавления ....и число добавляется странно...не то что вводишь а длинное....и саse'4' не вополняется почему то
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
#include "stdafx.h"
 
#include <time.h>
#include <conio.h>
#include "iostream"
#include<stdlib.h>
 
using namespace std;
 
int _tmain(int argc, _TCHAR* argv[])
{
    setlocale(LC_ALL,"");
    
    
    int *mas,a,h,m,b, choise;
    
    char choice;
         for(;;)
        {   
            
            cout<<"[1]Массив"<<endl;
            cout<<"[2]h"<<endl;
            cout<<"[3]Поиск"<<endl;
            cout<<"[4]Все значения"<<endl;
            cout<<"[5]Выход"<<endl;
            choice=getch();
        
        
 switch(choice)
 {
    case'1':
        srand(time(NULL));
        cout<<"Введите размерность"<<endl;
        cin>>m;
        cout<<endl;
        mas = new int [m];
        for(int j=0;j<m;j++)
        {   
            mas[j]=rand()%2;
            cout<<mas[j]<<" ";
        }
        cout<<endl;
        getch();
        break;
    case'2':
        cout<<"Введите значение "<<endl;
        cin>>a;
        cout<<endl;
        for(int i=0;i<(m-1);i++)
        {
            h=(a+0,4*i+0,6*i^i)%10;
            if (mas[h]=0)
                mas[i]=a;
                cout<<h;
        }
        for(int j=0;j<m;j++)
        {   
            
            cout<<mas[j]<<" ";
        }
        getch();
        break;
    case'3':
        cout<<"Введите искомое число "<<endl;
        cin>>b;
        cout<<endl;
        
        for(int i=0;i<m;i++)
        if (mas[i]=b)
        {cout<<"Есть"<<b<<endl;break;}
        else cout<<"Нет"<<endl;
        break;
    case'4':
        for(int j=0;j<m;j++)
        {   
            cout<<mas[j]<<" ";
        }
    case'5':
            exit(1);     
 }
  }
    _getch();
    return 0;
 
}
Добавлено через 15 часов 1 минуту
Не подскажите что не так в моё коде?
почему не выполняется квадратичное исследование после добавления&
....и число добавляется странно...не то что вводишь а длинное....
Deviaphan
Делаю внезапно и красиво
Эксперт C++
 Аватар для Deviaphan
1283 / 1217 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
04.10.2011, 12:24     Хэштаблицы с квадратичным исследованием.Ошибка #4
Может, выполняется, но сразу выходит?

Добавлено через 1 минуту
Цитата Сообщение от yuliyayuliya28 Посмотреть сообщение
if (mas[i]=b)
И это ещё

Добавлено через 49 секунд
Цитата Сообщение от yuliyayuliya28 Посмотреть сообщение
6*i^i
Ты же не в степень возводишь, правда?

Добавлено через 46 секунд
Цитата Сообщение от yuliyayuliya28 Посмотреть сообщение
h=(a+0,4*i+0,6*i^i)%10;
Это эквивалентно h = (a+0)%10;
yuliyayuliya28
3 / 3 / 0
Регистрация: 06.03.2011
Сообщений: 319
04.10.2011, 17:34  [ТС]     Хэштаблицы с квадратичным исследованием.Ошибка #5
Цитата Сообщение от Deviaphan Посмотреть сообщение
Может, выполняется, но сразу выходит?

Добавлено через 1 минуту

И это ещё

Добавлено через 49 секунд

Ты же не в степень возводишь, правда?

Добавлено через 46 секунд

Это эквивалентно h = (a+0)%10;

Хэш h расчитывается номер ячеки в которую мы должны записать число если оно равно нуля,если мы вводим этоже число второй раз то ячейка уже занята по первому циклу и когда i=1 мы рассчитываем уже другую ячейку в которую саписываем число..
Deviaphan
Делаю внезапно и красиво
Эксперт C++
 Аватар для Deviaphan
1283 / 1217 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
04.10.2011, 18:07     Хэштаблицы с квадратичным исследованием.Ошибка #6
Я не спрашивал, что такое хэш и как он считается. Я указал на ошибки.
yuliyayuliya28
3 / 3 / 0
Регистрация: 06.03.2011
Сообщений: 319
04.10.2011, 18:32  [ТС]     Хэштаблицы с квадратичным исследованием.Ошибка #7
Цитата Сообщение от Deviaphan Посмотреть сообщение
Я не спрашивал, что такое хэш и как он считается. Я указал на ошибки.
Я просто объяснила как я это поняла,опираясь на то что возможно ошибаюсь в сути.
C++
1
h=(a+0,4*i+0,6*i*i)%m;
так правильно?
и почему число не добавляетсяв массив не подскажите?
Deviaphan
Делаю внезапно и красиво
Эксперт C++
 Аватар для Deviaphan
1283 / 1217 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
04.10.2011, 18:40     Хэштаблицы с квадратичным исследованием.Ошибка #8
h=(a+0)%m
Вот что ты написал.

Точка и запятая не одно и то же.
yuliyayuliya28
3 / 3 / 0
Регистрация: 06.03.2011
Сообщений: 319
04.10.2011, 19:14  [ТС]     Хэштаблицы с квадратичным исследованием.Ошибка #9
Цитата Сообщение от Deviaphan Посмотреть сообщение
h=(a+0)%m
Вот что ты написал.

Точка и запятая не одно и то же.
C++
1
h=(a+0.4*i+0.6*i*i)%m;
а как тогда исправить ошибку

error C2296: '%' : illegal, left operand has type 'double'
остаток от деления ведьцелое число должно быть
Deviaphan
Делаю внезапно и красиво
Эксперт C++
 Аватар для Deviaphan
1283 / 1217 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
04.10.2011, 19:34     Хэштаблицы с квадратичным исследованием.Ошибка #10
h= int(a+0.4*i+0.6*i*i)%m;
Van111
кодер с++
208 / 187 / 4
Регистрация: 03.08.2011
Сообщений: 2,585
Записей в блоге: 12
04.10.2011, 19:36     Хэштаблицы с квадратичным исследованием.Ошибка #11
только по последнему сообщению могу предложить что ошибка в типе переменной h попробуй её изменит на int или double
yuliyayuliya28
3 / 3 / 0
Регистрация: 06.03.2011
Сообщений: 319
06.10.2011, 18:48  [ТС]     Хэштаблицы с квадратичным исследованием.Ошибка #12
Цитата Сообщение от Deviaphan Посмотреть сообщение
h= int(a+0.4*i+0.6*i*i)%m;
А что здесь не так?почему число в массив не добавляется?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
cout<<"Введите значение "<<endl;
                cin>>a;
                cout<<endl;
                for(int i=0;i<(m-1);i++)
                {
                        h=(a+0,4*i+0,6*i^i)%10;
                        if (mas[h]==0)
                                mas[i]==a;
                  }
                for(int j=0;j<m;j++)
                {       
                        
                        cout<<mas[j]<<" ";
                }
                getch();
                break;
Добавлено через 16 минут
Цитата Сообщение от Van111 Посмотреть сообщение
только по последнему сообщению могу предложить что ошибка в типе переменной h попробуй её изменит на int или double
h уже int и по условию это целое число должно быть
Yandex
Объявления
06.10.2011, 18:48     Хэштаблицы с квадратичным исследованием.Ошибка
Ответ Создать тему
Опции темы

Текущее время: 02:20. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru