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

Указатели - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Обработка исключений в классах для пользовательских типов http://www.cyberforum.ru/cpp-beginners/thread812516.html
Здорова господа! Запустил токо класс String тестю и тут у меня вылетело исключение выход за пределы индекса, и программа тупо аварийно остановилась В классе String, Range это вложенный класс для исключения выход за пределы индекса. я попробовал обработать это исключение и записал код: int main() try { //...
C++ Вычисление интергала, но входные данные сначала считываются из файла, а выходные наоборот в него записываются. Подскажите пожалуйста как это сделать Заранее спасибо за помощь.) #include<iostream> #include<conio.h> #include <stdio.h> #include <cmath> using namespace std; float f2(float x){ return sin(exp(x)); } http://www.cyberforum.ru/cpp-beginners/thread812488.html
Mayers S. vs C++11 standard C++
Привет, ребят! У Майерса читал: для предоставления виртуальной функции реализации по умолчанию, которой нужно пользоваться по явному требованию наследующего и переопределяющего виртуальную функцию программиста, т.е. чтобы не получилось так, что в наследном классе забыл её переопределить и будет срабатывать реализация из базового класса (а так же с целью незагромождения пространства имен класса...
Численное дифф-ние многочленом третьей степени C++
Было дано задание реализовать Численное дифференцирование с помощью многочлена третьей степени на C++. Я, кажется, смогла понять общий принцип, но на стадии реализации приключился ступор. http://i1.imageban.ru/thumbs/2013.03.19/48072c724b3519d52dba73f5d3fa4379.jpg http://i3.imageban.ru/thumbs/2013.03.19/9a79e8834e7702218e61273f3d3a462c.jpg Как я поняла, нужно преобразовать формулу, ведь...
C++ Вращение окружностей вокруг определенного центра http://www.cyberforum.ru/cpp-beginners/thread812476.html
Всем доброго времени и суток! Как сделать вращающиеся окружности вокруг центра? Рисунок есть. Не могу понять как задать цикл вращения... Версия 4.9.9.2 Dev-C++#include<conio.h> #include<graphics.h> main() {
C++ из L- ой строки вычесть K- ую умноженную на a(LK)/a(KK) помогите пожалуйста написать программу."заданы матрица А размером 4*4 и числа K и L (K!=L;1<=K;L<4).из L строки вычесть K умноженную на a(LK)/a(KK) ."в с++ Borland подробнее

Показать сообщение отдельно
Apelsin199
11 / 11 / 1
Регистрация: 04.11.2012
Сообщений: 127
19.03.2013, 11:55  [ТС]     Указатели
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
это вообще что такое???
Это я изначально все ячейки массива задаю буквой "а", затем, чтобы обозначить ячейку пустой. к примеры, были бы у меня цифры, я бы поставил вместо "а", ну к примеру NULL.

Добавлено через 1 минуту
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
это вообще что такое???
Сори... немного не то, if(arr[i]!="a") этим я проверяю на пустоту ячейку, если встречается буква "а", значит ячейка пустая.

Добавлено через 3 минуты
Вот, доделал код, единственное что осталось, это проблема, это то, что все слова в массиве перезаписываются на последнее прочитанное...
К примеру, считалось слово "стол", нашелся хеш ключ, к примеру 121, и на место 121 записался "стол", потом читаю слово "рука", считается хеш ключ, к примеру 130, на место 130 пишется "рука", но и в этот же момент на месте 121, стол" перезаписывается на "рука", и т.д. .....
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
#include<clocale>
#include<stdio.h>
#include<conio.h>
#include <iostream>
#include <fstream>
using namespace std;
 
const int N=256;
 
struct HashTable
{
    char *arr[256];
    HashTable()
    {
        for(int i=0;i<N;i++)
        {
            arr[i]="a";
        }
    }
    int HashKey(char *str)
    {
        unsigned char amount=0;
        while(*str)
        {
            amount +=*str;
            *str++;
        }
        amount*=amount;
        amount=amount%256;
        return amount;
    }
    bool Add(char *str)
    {
        int i;
        i=HashKey(str);
        while(i!=N)
        {
            if(arr[i]=="a")
            {
                arr[i]=str;
                return true;
            }
            else
            {
                i=(i+1)%N;
            }
        }
        return false;
    }
    void PrintHash()
    {
        for(int i=0;i<N;i++)
        {
            if(arr[i]!="a")
            {
                cout << i << ": ";
                cout << arr[i]<<"\n";
            }
        }
    }
    bool search(char *str)
    {
        int i;
        i=HashKey(str);
        while(i!=N && arr[i]!="a")
        {
            if(strcmp(arr[i],str)==0)
            {
                return true;
            }
            else
                i=(i+1)%N;
        }
        return false;
    }
    bool Delete(char *str)
    {
        int i;
        i=HashKey(str);
        while(arr[i]!="a")
        {
            if(arr[i]==str)
            {
                arr[i]="a";
                return true;
            }
            i=(i+1)%N;
        }
        return false;
    }
};
 
int main()
{
    setlocale( LC_ALL, "rus" );
    FILE *in;
    in=fopen("input.txt", "r");
    HashTable table;
    char str[100];
    char buf[100];
    while(!feof(in))
    {
        fscanf(in,"%s",&str);
        if(!table.Add(str))
        {
            printf("Хеш-таблица заполнина!!!");
            break;
        }
    }
    table.PrintHash();
    printf("\n\n------------------------------------------------\n\n");
    printf("Поиск в хеш таблице\nвведите слово:");
    scanf("%s",&buf);
    if(table.search(buf))
    {
        printf("\nСлово %s находится в таблице", buf);
    }
    else
    {
        printf("\nСлово не находится в таблице!!!");
    }
    printf("\n\n------------------------------------------------\n\n");
    printf("Удаления слова из таблици\nВведите слово");
    scanf("%s",buf);
    if(table.Delete(buf))
    {
        printf("\nСлово удаленое из таблице!!!\nВот что осталось:\n");
        table.PrintHash();
    }
    else
    {
        printf("Слово %s не удалено",buf);
    }
    getch();
    return 0;
}
Добавлено через 3 минуты
Мне через час в институт идти, никто не поможет?....
 
Текущее время: 02:49. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru