Форум программистов, компьютерный форум, киберфорум
C++/CLI
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
0 / 0 / 0
Регистрация: 23.10.2014
Сообщений: 5
1

Поиск элемента в одномерном массиве

01.12.2014, 19:22. Показов 1317. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день, помогите решить проблему не работает метод который должен определять есть ли в массиве элемент с заданным ключем

Код моего класса:

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
#pragma once
#include "stdafx.h"
#include "ctime"
#include "iostream"
 
class myArray
{
        int *array;
        int size;
public:
    // создание массива
        int *createArray(int a)
        {
            array = new int[a];
            for (int i = 0; i < a; i++)
                array[i] = 0;
            size = a;
            return array;
        }
 
    // заполнение массива случайными числами
        void SetRandArray()
        {
            srand(time(NULL));
            for ( int i = 0; i < size; i++)
                array[i] = rand()%100-50; 
        }
 
    // вывод результатов
        int Show(int i) const
        {
            return array[i];
        }
 
    // считывание значение из dateGridView
        void Read(int i, int data)
        {
            array[i] = data;
        }
 
    // проверяет есть есть ли в массиве заданый ключ
        bool TestKey(int key)
        {
            int temp;
            for (int i = 0; i < size; i++)
                if (key==array[i]) temp = true;
                else temp = false;
            if (temp == true) return true;
            else return false;
        }
 
    // возвращает значение индекса элемета с заданым ключем
        int LinearSearch(int key)
        {
            for (int i = 0; i < size; i++)
                if(key==array[i]) return i;
        }
 
        
 
};
Методы которые предназначеные для поиска элемента

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
    // проверяет есть есть ли в массиве заданый ключ
        bool TestKey(int key)
        {
            int temp;
            for (int i = 0; i < size; i++)
                if (key==array[i]) temp = true;
                else temp = false;
            if (temp == true) return true;
            else return false;
        }
 
    // возвращает значение индекса элемета с заданым ключем
        int LinearSearch(int key)
        {
            for (int i = 0; i < size; i++)
                if(key==array[i]) return i;
        }
использование в программе

C++
1
2
3
4
5
6
7
8
9
10
11
12
private: System::Void button4_Click(System::Object^  sender, System::EventArgs^  e) 
         {
             int key = System::Convert::ToInt32(textBox1->Text);
             int temp;
             if ((arr1.TestKey(key))==true)
             {
                 temp  = arr1.LinearSearch(key);
                 richTextBox1->AppendText("The key is found, its index in the array: ");
             }
             else richTextBox1->AppendText("Key not found");
 
         }
Если пригодятся остальные фукции программы:

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
private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e) 
             {
                 int size = System::Convert::ToInt32(textBox1->Text);
                 arr1.createArray(size);
                 for ( int i = 0; i < size; i++)
                     dataGridView1->Columns->Add("Column3", "");
                 dataGridView1->Rows->Add();
                 richTextBox1->AppendText("Array been created.\n");
             }
 
private: System::Void button2_Click(System::Object^  sender, System::EventArgs^  e) 
         {
             int size = System::Convert::ToInt32(textBox1->Text);
             arr1.SetRandArray();
             for ( int i = 0; i < size; i++)
                 dataGridView1->Rows[0]->Cells[i]->Value= System::Convert::ToString(arr1.Show(i));
             richTextBox1->AppendText("The array elements are filled with random numbers.\n");
         }
private: System::Void button3_Click(System::Object^  sender, System::EventArgs^  e) 
         {
            int temp;
            int size = System::Convert::ToInt32(textBox1->Text); 
            for(int i = 0; i < size; i++)
            {
                temp = System::Convert::ToInt32(dataGridView1->Rows[0]->Cells[i]->Value);
                arr1.Read(i, temp); 
            }
            richTextBox1->AppendText("Element array were introduced in.\n");
         }
 
private: System::Void label1_Click(System::Object^  sender, System::EventArgs^  e) {
         }
 
private: System::Void button4_Click(System::Object^  sender, System::EventArgs^  e) 
         {
             int key = System::Convert::ToInt32(textBox1->Text);
             int temp;
             if ((arr1.TestKey(key))==true)
             {
                 temp  = arr1.LinearSearch(key);
                 richTextBox1->AppendText("The key is found, its index in the array: ");
             }
             else richTextBox1->AppendText("Key not found");
 
         }
};
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.12.2014, 19:22
Ответы с готовыми решениями:

Поиск элемента в одномерном массиве
Помогите, пожалуйста, с решением задач: 1)Найти среднее арифметическое всех отрицательных...

Поиск элемента в одномерном массиве.
задан целочисленный одномерный массив. найти минимальный элемент этого массива и поставить его в...

Поиск элемента в одномерном целочисленном массиве
Определить есть ли в заданном одномерном целочисленном массиве элементы равные заданному x, и если...

Поиск минимального элемента в одномерном массиве
Нужно написать программу и блок-схему к ней. Алгоритм поиска минимального элемента в одномерном...

4
37 / 37 / 18
Регистрация: 21.06.2013
Сообщений: 271
Записей в блоге: 1
01.12.2014, 19:26 2
Цитата Сообщение от RandomGuest Посмотреть сообщение
Добрый день, помогите решить проблему не работает метод который должен определять есть ли в массиве элемент с заданным ключем
Как выглядит ключ?
0
0 / 0 / 0
Регистрация: 23.10.2014
Сообщений: 5
01.12.2014, 22:19  [ТС] 3
int key = System::Convert::ToInt32(textBox2->Text);

Добавлено через 2 часа 13 минут
C++
1
2
3
4
5
6
7
8
9
10
11
12
private: System::Void button4_Click(System::Object^  sender, System::EventArgs^  e) 
         {
             int key = System::Convert::ToInt32(textBox2->Text);
             int temp;
             if ((arr1.TestKey(key))==true)
             {
                 temp  = arr1.LinearSearch(key);
                 richTextBox1->AppendText("The key is found, its index in the array: ");
             }
             else richTextBox1->AppendText("Key not found");
 
         }
Добавлено через 34 минуты
UP! Ребята, помогите
0
37 / 37 / 18
Регистрация: 21.06.2013
Сообщений: 271
Записей в блоге: 1
01.12.2014, 22:25 4
Цитата Сообщение от RandomGuest Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
bool TestKey(int key)
{
    int temp;
    for (int i = 0; i < size; i++)
        if (key==array[i]) temp = true;
        else temp = false;
    if (temp == true) return true;
    else return false;
}
C++
1
2
3
4
5
6
7
8
9
 bool TestKey(int key)
        {
            int temp;
            for (int i = 0; i < size; i++)
                if (key==array[i])
               return true;
                else 
             return false;
        }
0
0 / 0 / 0
Регистрация: 23.10.2014
Сообщений: 5
01.12.2014, 23:06  [ТС] 5
Проблема решена. Возможно, кому-нибудь в будущем пригодится:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
bool TestKey(int key)
        {
            bool temp = false;
            for (int i = 0; i < size; i++)
                if (key==array[i]) temp = true;
            if (temp) return true;
            else return false;
        }
 
    // возвращает значение индекса элемета с заданым ключем
        int LinearSearch(int key)
        {
            for (int i = 0; i < size; i++)
                if(key==array[i]) return i;
        }
0
01.12.2014, 23:06
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
01.12.2014, 23:06
Помогаю со студенческими работами здесь

Поиск максимального и минимального элемента массива в одномерном массиве
Помогите решить задачу Поиск максимального и минимального элемента массива в одномерном массиве

Поиск максимального и минимального элемента в одномерном динамическом массиве
Помогите пожалуйста, никак не могу понять где тут ошибка и что вообще нужно делать(код на C++)...

В отсортированном одномерном массиве выполнить поиск заданного элемента последовательным методом
Знаю,что тут есть похожая очень тема, но не могу справиться который день...так что прошу...

Функция, выполняющая поиск заданного элемента в одномерном массиве типа double
Написать функцию, выполняющую поиск заданного элемента в одномерном массиве типа double. Параметры...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru